0066. Plus One

0066. Plus One #

题目 #

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

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

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

思路 #

代码 #

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