LeetCode探索之旅(15)-66加一

继续刷LeetCode,第66题,对一个正整数进行加一。

分析:
输入的正整数是用容器来表示每个位的,所以可以从最后一位往前遍历,进行加一,碰到加一后的结果为10的时候就,往前进一位,继续加一,直到第一位。如果出现加一后还是为10,就插入一位。

问题:
1、考虑特殊情况,出现0、129、999等;

附上代码:

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int n=digits.size();
        while(n--)
        {
            if((digits[n]+1)==10)
            {
                if(n==0)
                {
                    digits[n]=0;
                    digits.insert(digits.begin(),1);
                }
                else
                    digits[n]=0;
            }
            else
            {
                digits[n]=digits[n]+1;
                break;
            }
        }
        return digits;
    }
};

猜你喜欢

转载自blog.csdn.net/JerryZengZ/article/details/87865984
今日推荐