6_66.加一


题目描述:

解题思路:

考虑到进位只有当最低位为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;
        
    }
}