1. 066

plus-one/


2. 算法

O(N)

  • 从右往左,如果到[0]还有进位,则需要(n.length+1)的数组

3. 代码

class Solution{
public:
    vector<int> plusOne(vector<int> &digits){
        int c = 1; // 令进位标识初始值为1
        for(int i = digits.size() - 1; i >= 0; -- i){
// 不断处理进位
            int a = digits[i] + c;
            digits[i] = a % 10;
            c = a / 10;
        }
// 如果最后还有进位,则在数组最前面在插入1
        if(c == 1)
            digits.insert(digits.begin(), 1);
        return digits;
    }
};

results matching ""

    No results matching ""