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;
}
}

浙公网安备 33010602011771号