算法13 Plus One

题目:给一个用数组表示的非负整数,加一并返回。
假设数组除了 0 本身不会零打头(不会有 01,007 这样的数组)。
高位在数组的前面。

思路:遍历数组的每位,同时判断是否要进位,如果最后还有进位,则在数组最前面在插入1即可。

代码:

public int[] plusOne(int[] digits){
    int n = digits.length;
    for (int i = n-1;i >= 0;i--){
       //若小于9,则加一,跳出循环返回
        if (digits[i] < 9){
            digits[i]++;
            return digits;
        }
        digits[i] = 0;
    }
    //说明前面都是9,所以添加一位,设成1
    int[] newDigits = new int[n+1];
    newDigits[0] = 1;
    return newDigits;
}

你可能感兴趣的:(算法13 Plus One)