leetcode初级算法5.加一
程序员文章站
2024-03-23 15:54:46
...
leetcode初级算法5.加一
仅为个人刷题记录,不提供解题思路
题解与收获
我的解法:(总结在代码中)
public int[] plusOne(int[] digits) {
//获取digits长度
int length = digits.length;
//判断条件
int count = 0;
//全是9的情况
for (int i = 0; i < digits.length; i++) {
if(digits[i] == 9){
count++;
}
if(count == length){
int[] result = new int[length + 1];
result[0] = 1;
return result;
}
}
//指向数组的最后一位
int index = digits.length -1;
int outOfRange = 10;
if(digits[index] != outOfRange - 1){
digits[index] += 1;
}else{
digits[index--] = 0;
while(digits[index] + 1 == outOfRange){
digits[index--] = 0;
}
digits[index] += 1;
}
return digits;
}
官方题解
public int[] plusOne(int[] digits) {
int n = digits.length;
for (int i = n - 1; i >= 0; --i) {
if (digits[i] != 9) {
++digits[i];
for (int j = i + 1; j < n; ++j) {
digits[j] = 0;
}
return digits;
}
}
// digits 中所有的元素均为 9
int[] ans = new int[n + 1];
ans[0] = 1;
return ans;
}
结果差强人意。