美文网首页
Leetcode: 66 加1

Leetcode: 66 加1

作者: TimberTang | 来源:发表于2019-08-15 15:51 被阅读0次

    加一

    第一种方法其实比较多余, 每次记录一下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;
        }
    }
    

    相关文章

      网友评论

          本文标题:Leetcode: 66 加1

          本文链接:https://www.haomeiwen.com/subject/fkbzjctx.html