题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
解题思路:从数组后面开始插入,如果数组元素是9则需进位。
代码解析:digits.insert(digits.begin(),1),在第一个元素前插入一。
注意事项:len=nums.size()会越界。
代码:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int len=digits.size()-1;
for(int i=len;i>=0;i--){
if(digits[i]!=9){
digits[i]+=1;
return digits;
}
else{
digits[i]=0;}
}
digits.insert(digits.begin(),1);
return digits;
}
};