LeetCode-初级算法-加一

运行结果

LeetCode-初级算法-加一

一、题目

LeetCode-初级算法-加一

二、分析

这道题比较简单,首先题目已经明确指出数组是非空的,而且数组中的每一位都是非负整数,所以我们不用考虑某些特殊情况,我的思路比较简单,就是和我们正常进行加法运算的步骤一样,先找个位数,在个位数加1,如果个位数为9,则需要进位,个位数为0,继续找前一位加1。继续做相同的判断,直到进位至最高位还需进位的情况,这种情况只存在一种现象:数组中的每一位都为9,此时需要重新定义一个数组,数组的长度比原数组多1,该数组的第一位为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[] result = new int[digits.length+1];
        result[0] = 1;
        return result;
    }
}