【LeetCode】66. 加一
阿新 • • 發佈:2018-12-15
題目描述
給定一個由整陣列成的非空陣列所表示的非負整數,在該數的基礎上加一。
最高位數字存放在陣列的首位, 陣列中每個元素只儲存一個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
示例
輸入: [1,2,3] 輸出: [1,2,4] 解釋: 輸入陣列表示數字 123。
輸入: [4,3,2,1] 輸出: [4,3,2,2] 解釋: 輸入陣列表示數字 4321。
解決方法
題目較簡單
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
digits[ digits.size()-1]++;
int add=digits[digits.size()-1]/10;
digits[digits.size()-1]%=10;
for (int i=digits.size()-2;i>=0;i--){
digits[i]+=add;
add=digits[i]/10;
digits[i]%=10;
}
if (add==0) return digits;
else{
vector< int> result(digits.size()+1);
result[0]=add;
for (int i=1;i<result.size();i++)
result[i]=digits[i-1];
return result;
}
}
};