题目
给出用数字数组表示的一个非负整数,请对该整数加1。
Given a non-negative number represented as an array of digits, plus one to the number.
思路
考虑9
代码
注释的里面我是转化int直接计算出来了然后+1 然后再转数组 可是通过率只有42.99%;
查看了网友的答案,这个还是很清晰的。
public class Solution {
public int[] plusOne(int[] digits) {
/*int test = 1;
int len = digits.length;
int sum = 0;
if(digits==null||len==0){
return digits;
}
if(digits[len-1]==9){
for(int i=len-1;i>=0;i--){
sum=sum+digits[i]*test;
test = test*10;
}
sum++;
String str = String.valueOf(sum);
int[] intArray = new int[str.length()];
for (int i = 0; i < str.length()-1; i++){
Character ch = str.charAt(i);
intArray[i] = Integer.parseInt(ch.toString());
}
return intArray;
}else{
digits[len-1] = digits[len-1]+1;
return digits;
}*/
for (int i = digits.length-1; i >= 0 ; i--) {
//除非每轮都是0 的情况
if (digits[i] == 9)digits[i] = 0;
else {
digits[i] = digits[i]+1;
break;
}
}
// 100 1000.。。
if (digits[0] == 0){
int[] arr = new int[digits.length+1];
arr[0] = 1;
for (int i = 1; i < arr.length; i++) arr[i] = 0;
return arr;
}
return digits;
}
}```
### 总结