解析
从后往前遍历数组,由于首位有可能进位,所以拼接在原数组的首位上增加0,在每一位的加1后检查前一位需不需要进位
代码
class Solution {
public:vector<int> plusOne(vector<int>& digits) {if(digits[0]==0){digits[0] = 1;return digits;}else{vector <int> newDigits;newDigits.push_back(0);for(int i = 0;i < digits.size();i++){newDigits.push_back(digits[i]);}bool falg = true;for(int i = newDigits.size()-1 ; i>=0 ;i--){int num = newDigits[i];if(falg){num += 1;}else{break;}if(num == 10){falg = true;newDigits[i] = 0;}else{falg = false;newDigits[i] = num;}}int start = 0;if(newDigits[0] == 1){digits = newDigits;}else{start = 1;for(int i = start; i<newDigits.size();i++){digits[i-1] = newDigits[i];}}return digits;}}
};