加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 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;
}
};
这篇博客介绍了如何对一个由整数组成的非负整数进行加一操作。当最高位为9时,会进位到更高位。提供了具体的代码实现,包括处理尾数为9的情况,以及当所有位数均为9时,加一后在数组前插入1的情况。
4万+

被折叠的 条评论
为什么被折叠?



