給定一個由整數(shù)組成的非空數(shù)組所表示的非負整數(shù),在該數(shù)的基礎上加一难衰。
最高位數(shù)字存放在數(shù)組的首位钦无, 數(shù)組中每個元素只存儲一個數(shù)字。
你可以假設除了整數(shù) 0 之外盖袭,這個整數(shù)不會以零開頭失暂。
示例 1:
輸入: [1,2,3]
輸出: [1,2,4]
解釋: 輸入數(shù)組表示數(shù)字 123彼宠。
解答:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
// 思路: 新建數(shù)組,取出原數(shù)組的元素弟塞,逐位相加凭峡,計算余數(shù)和進位,循環(huán)
int num=1; // 初始進位
vector<int> ret; // 新建數(shù)組
while(digits.size()>0){
int x= digits.back(); // 取出舊數(shù)組的最后一位
digits.pop_back(); // 刪除舊數(shù)組的最后一位
x= x+num; // 計算新數(shù)組的元素的值
ret.insert(ret.begin(),x%10); // 插入新數(shù)組的首位
num=x/10; // 計算進位
}
if(num>0){
ret.insert(ret.begin(),num);
} // 判斷最后的進位是否大于0决记,是的話再插入新數(shù)組
return ret;
}
};