[LeetCode] #66 加一

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

输入:digits = [1,2,3]

输出:[1,2,4]

解释:输入数组表示数字 123。

难点在于9加1后需要进位。那我们从末尾开始加1,如果加完等于10,那我们需要把10变成0,再把前一位加1,以此类推。如果不等于10就直接结束。

如果出现999的情况,会变成000,则需要我们创建长度加1的新数组,首位填1代表1000。

class Solution {
    public int[] plusOne(int[] digits) {
        for(int i = digits.length-1;i>=0;i--){
            digits[i]++;
            digits[i]=digits[i]%10;
            if(digits[i]%10!=0){
                return digits;
            }
        }
        digits= new int[digits.length+1];
        digits[0] = 1;
        return digits;
    }
}

知识点:

总结:

posted @ 2021-07-27 16:26  1243741754  阅读(40)  评论(0编辑  收藏  举报