LeetCode 66 — Plus One( Java 递归)
public class Solution {
int t=0;
public int[] plusOne(int[] digits) {
add(digits,digits.length-1);
if(t!=0){
digits=Arrays.copyOf(digits, digits.length+1);
digits[0]=1;
return digits;
}
return digits;
}
public void add(int[] digits,int i){//判断是否满足进位要求,满足则当前置0,然后进位,不满足则当前位加1,退出递归
if(t!=0)
if(i<0) return ;
if(digits[i]+1>9){
digits[i]=0;
if(i==0){//如果递归到最后一位,仍需进位,则改变标志位t,在递归外部对数组进行扩容(我想在递归内部进行扩容可惜没有做到,如有解决办法欢迎留言)
t=1;
return;
}
add(digits,--i);
}else{
digits[i]=digits[i]+1;
return ;
}
}
}
LeetCode 66 — Plus One( Java 递归)
最新推荐文章于 2024-08-08 22:50:50 发布