给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
该数字按照大小进行排列,最大的数在列表的最前面。
您在真实的面试中是否遇到过这个题?
Yes
样例
给定 [1,2,3] 表示 123, 返回 [1,2,4].
给定 [9,9,9] 表示 999, 返回 [1,0,0,0].
class Solution {
public:
/**
* @param digits a number represented as an array of digits
* @return the result
*/
vector<int> plusOne(vector<int>& digits) {
// Write your code here
vector<int> rec_digits(digits.rbegin(),digits.rend());
int flag=1;
for(int i=0;i<rec_digits.size();i++){
int val=rec_digits[i]+flag;
if(val>=10){
rec_digits[i]=val�;
flag=val/10;
}
else{
rec_digits[i]=val;
flag=0;
}
}
if(flag==1){
rec_digits.push_back(1);
}
digits.assign(rec_digits.rbegin(),rec_digits.rend());
return digits;
}
};