LeetCode初级算法(数组篇)-----加一
题目
解题思路
从最后一位开始考虑,是否为9的情况。 如果不为9,直接加一输出result
如果为9,先将本位值为零, 考虑上一位数的值的情况,如果 考虑为9的情况,递归循环处理。 如果到了第一个数还是9,将最高位设置为0,并且在最高位之前插入1作为 新的 从最后一位开始考虑
代码
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int now = digits.size()-1; //求出长度
while(now>=0){
int num = digits[now]+1; //最后一位加一
if(num!=10){ //判断是否等于10
digits[now] = num; //不等于直接赋值输出
return digits;
}else{
digits[now]=0; //先将末尾设置为0
if(now==0){ //判断是否为最高位
digits.insert(digits.begin(),1); //插入1
return digits;
}
now--; //遍历上一位 在else中加入now更新的
}
}
return {};
}
};
|