题目描述:
解题思路:
考虑到进位只有当最低位为9的时候发生,如果最低位不是9,直接加一即可;最低位是9,有可能连续几个都是9,那么此时只需要找到第一个不是9的位,然后让其加一,其他为9的位变成0;特殊情况,如果全是9,那么需要新建一个数组,因为数组的大小要加1.
代码:
class Solution {
public int[] plusOne(int[] digits) {
int index = digits.length - 1;
while (index >= 0){
if (digits[index] != 9){
digits[index] += 1;
return digits;
}
digits[index] = 0;
index--;
}
int len = digits.length;
int[] array = new int[len + 1];
array[0] = 1;
return array;
}
}