leetcode66. 加一

分析

从最后一位开始+1后%10,若得到的值不为0,则说明不需要进位了,直接返回。若到第一位还是需要进位,则首位需要再向前+1。(9999)->(10000)

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int n=digits.size();
        for(int i=n-1;i>=0;i--){
            digits[i]=(digits[i]+1)%10;
            if(digits[i]!=0){
                return digits;
            }
        }
        digits =vector<int>(n+1);
        digits[0]=1;
        return digits;
    }
};