[leetcode]plus-one

RioDream發表於2019-05-12

vector + 1

思路

往前找到非9的元素,加1即可


solution 1

需要知道 vector是i可以前插的

class Solution {
public:
    vector<int> plusOne(vector<int> &digits) {
        int n = digits.size();
        int i=n-1;
        //從後往前
        while(digits[i]==9 && i>=0){
            digits[i] = 0;
            i--;            
        }

        //break for what?
        if(i<0){ //cases like 99999
            digits.insert(digits.begin(),1);
        }else{ //cases like 8999
            digits[i]++;
        }
        return digits;

    }
};

solution 2

轉化為數字,然後再+1,然後再轉化回去。 這實際有點小題大做,因為這一題固定只是+1.
如果是隨便+一個數,就可以用這種方法。

總結

考慮出題意義,這個題目按照這個做法是不是小題大做了?