Plus One(C++加一)

解題思路:

(1)設置進位,判斷是否大於10,是則設置進位爲1,否則爲0

(2)使用原地算法,初始進位爲1,判斷最後進位是否爲1,是則在vector前端插入1

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int c = 1; // 進位
        for(int i=digits.size()-1;i>=0;i--) {
            if(digits[i]+c>=10) {
                digits[i]=digits[i]+c-10;
                c = 1;
            } else {
                digits[i]=digits[i]+c;
                c = 0;
            }
        }
        if(c==1) digits.insert(digits.begin(),1);
        return digits;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章