Leetcode——第66题数组表示数加一

用数组表示数加一,从后往前遍历,找到非9的数,加一,后面的数全为0.
如果全部遍历都是9,重新创建数组,第一位为1,后面为0

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int len=digits.size();
        for(int i=len-1;i>=0;i--){//从后往前一个个查值
            if(digits[i]==9) continue;//是9,进下一位
            else{//不是9,直接当前位加加,当前位后面应该都是0
                digits[i]++;
                for(int j=i+1;j<len;j++){
                    digits[j]=0;
                }
                return digits;
            }
        }

        vector<int> res(len+1);//全是9,没办法,重新创建数组
        res[0]=1;
        return res;
    }
};

版权声明:本文为weixin_44730078原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。