66. 加一
例如:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。
思路:
- 可以将数组转换为数字然后加一,在将数字转换为数组,但这样的缺点是要考虑原数组可能会溢出,要判断数组是否为原来的长度+1.
- 在原来的数组的基础上相加,从数组的最后以为开始判断,若<9,则直接该位+1,return该数组;若=9,则该位置0;继续迭代;若该数组中的值全为9,则跳出for循环,新定义一个length为原来数组的length+1的数组,并且该数组的第0个数为1,其余为0.
class Solution {
public int[] plusOne(int[] digits) {
for(int i=digits.length-1;i>=0;i--){
if(digits[i] != 9){
digits[i] += 1;
return digits;
}
digits[i] = 0;
}
int[] res = new int[digits.length+1];
res[0] = 1;
return res;
}
}