66. 加一

https://leetcode.cn/problems/plus-one

class Solution {
    public int[] plusOne(int[] digits) {
        // 思路:
        // 1.模拟进位
        // 2.取出原数(高精或bigInt),计算++,构造新数组
        if (digits[digits.length - 1] != 9) {
            digits[digits.length - 1]++;
            return digits;
        }
        int index = digits.length - 1; // index可缩写为idx
        while (index >= 0 && digits[index] == 9) {
            digits[index] = 0;
            index--;
        }
        if (index == -1) {
            // 扩位
            int[] res = new int[digits.length + 1];
            res[0] = 1;
            for (int i = 0; i < digits.length; i++) {
                res[i + 1] = digits[i];
            }
            return res;
        } else {
            // 未扩位,正常计算
            digits[index]++;
        }
        return digits;
    }
}

 

posted @ 2026-05-06 17:33  风乐  阅读(4)  评论(0)    收藏  举报