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