给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
该数字按照大小进行排列,最大的数在列表的最前面。
样例
给定 [1,2,3]
表示 123, 返回 [1,2,4]
.
给定 [9,9,9]
表示 999, 返回 [1,0,0,0]
.
无脑做法是遍历vector算出sum,加1再转回去
也可以模拟这个加法过程,一位一位操作
从个位开始,算出一位就插一位
1 vector<int> plusOne(vector<int> &digits) { 2 // write your code here 3 vector<int> res; 4 int tem = 1, n = digits.size(); 5 for (int i = n - 1; i >= 0; --i) { 6 int sum = digits[i] + tem; 7 res.insert(res.begin(), sum % 10); 8 tem = sum / 10; 9 } 10 if (tem == 1) res.insert(res.begin(), 1); 11 return res; 12 }