问题链接
问题描述
给定一个由 整数
组成的 非空
数组所表示的非负整数,在该数的基础上加一
。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例
示例1
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
示例2
输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。
示例3
输入:digits = [0]
输出:[1]
解题思路
题目的意思是让我们完成一个非负整数的加1运算。
从数组最后一位开始做+1运算,如果遇到9要原地置0并向前进一位,即前面的数继续做+1运算;如果没遇到9,做完运算就直接结束。
此外,要小心全都是9的情况,例如[9,9,9,9]
,结果应该是[1,0,0,0,0]
代码示例(JAVA)
class Solution {
public int[] plusOne(int[] digits) {
for (int i = digits.length - 1; i >= 0; i--) {
if (digits[i] != 9) {
digits[i]++;
return digits;
} else {
digits[i] = 0;
}
}
int[] result = new int[digits.length + 1];
result[0] = 1;
return result;
}
}
执行结果

网友评论