链接地址:https://leetcode-cn.com/problems/plus-one/
import java.util.Arrays;
class Solution66 {
public static int[] plusOne(int[] digits) {
int carry=1;
for(int i=digits.length-1;i>=0;i--){
int num=digits[i]+carry;
digits[i]=num%10;
carry=num/10;
if(carry==0){
break;
}
}
if(carry==1){ //只能说明数组当中肯定全是9,例如999会变为1000,增加了数组长度。
int[] arr=new int[digits.length+1];
arr[0]=1;
return arr;
}
return digits;
//错误的思路 整形溢出
/*
int num=0;
for(int i=0;i<digits.length;i++){
num=num*10+digits[i];
}
num=num+1;//124
int[] arr=new int[(""+num).length()];
for(int i=arr.length-1;i>=0;i--){
arr[i]=num%10;
num/=10;
}
return arr;
*/
注意在做LeetCode题时,如果你先在自己的编译器上运行题目中给的个别例子,那么在LeetCode中运行时可能会出错,因为它会给出很多测试用例,需要全部满足才能通过,上边那个错误思路就是因为这个原因,所以推荐直接在LeetCode上运行。