Leetcode: 66 加1

2019-08-15  本文已影响0人  TimberTang

加一

第一种方法其实比较多余, 每次记录一下carry

class Solution {
    public int[] plusOne(int[] digits) {
        int trail = 1;

        for (int i = digits.length - 1; i >= 0; i--) {
            int temp = digits[i];
            int sum = temp + trail;
            if (sum >= 10) {
                trail = 1;
            } else {
                trail = 0;
            }
            digits[i] = sum % 10;
        } 
        if (trail > 0) {
            int array[] = new int[digits.length + 1];
            array[0] = trail;
            for (int i = 1; i < array.length; i++) {
                array[i] = digits[i - 1];
            }
            return array;
        }
        return digits;
    }
}

class Solution {
    public int[] plusOne(int[] digits) {
        int len = digits.length;
        for (int i = len - 1; i >= 0; i --) {
            digits[i]++;
            digits[i] = digits[i] % 10;
            if (digits[i] != 0) { // 没有加起来等于 10 的 || 当前不是  9 return
                return digits;
            }
        }
        digits = new int[len + 1]; // 最后一位
        digits[0] = 1; 
        return digits;
    }
}
上一篇下一篇

猜你喜欢

热点阅读