LeetCode66——Plus One

  加1,在一个数组末端加1会出现什么情况。拿到这个题目我就有点跑偏了,往大数上马不停蹄,跑了一半发现错得离谱。初开9 + 1能进位,其他任何数加一个1直接返回就行了。所以如果末尾是0,1,2,3,4,5,6,7,8直接返回digits[末尾] + 1。那么如果是9呢?是9这位就变成0,下一位就变成n+1,对不对。如果全都是9呢,全都是9就需要在整个数组前面插入一个1达到目的。

  

class Solution
{
public:
    vector<int> plusOne(vector<int>& digits) 
    {
        int len;
        for(len = digits.size() - 1;len >= 0;-- len)
        {
            if(digits[len] != 9)
            {
                digits[len] ++;
                return digits;
            }
            else
            {
                digits[len] = 0;
            }
            
        }
        if(len < 0)
        {
            digits.insert(digits.begin(),1);
        }
        return digits;
    }
};

 

  

posted on 2015-12-08 14:50  MMac  阅读(149)  评论(0编辑  收藏  举报

导航