題目描述:
給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。
最高位數字存放在數組的首位, 數組中每個元素隻存儲一個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
示例 1:
輸入: [1,2,3]
輸出: [1,2,4]
解釋: 輸入數組表示數字 123。
示例 2:
輸入: [4,3,2,1]
輸出: [4,3,2,2]
解釋: 輸入數組表示數字 4321。
AC C++ Solution:
從右往左判斷每位是否為9,隻要是9則賦為0,當遇到第一位不是9的數時,目前位加1并傳回。
若所有數字都為9,則把開頭賦為1,後面加個0代表進位。
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int n = digits.size();
for(int i = n-1; i >= 0; i--) {
if(digits[i] == 9)
digits[i] = 0;
else {
digits[i]++;
return digits;
}
}
digits[0] = 1;
digits.push_back(0);
return digits;
}
};