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 中所有的元素均为 9int[] ans = new int[n + 1];ans[0] = 1;return ans;}
结果差强人意。