加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
输入:digits = [9,9,9]
输出:[1,0,0,0]
解释:输入数组表示数字 1000。
有三种情况:1、尾数不为9,2、尾数为9,需要往前进1,但总长度不变,3、尾数为9,往前进1,总长度加1
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
for(int i = digits.size()-1; i>=0; i--){
digits[i] = digits[i] + 1;
digits[i] = digits[i] % 10;
if(digits[i] != 0){ %如果值不为0,说明不需要往前进1,跳出循环
return digits;
}
}
//程序执行完毕后,数组第一个值为0,需要手动给数组起始位置插入1
digits.insert(digits.begin(),1);
return digits;
}
};