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 递归)
最新推荐文章于 2025-11-26 15:59:01 发布
本文介绍了一个使用Java实现的LeetCode第66题PlusOne的递归解决方案。该方法通过递归地检查数字数组的每一位,并在必要时执行进位操作来实现数字加一的功能。如果最终需要进位而数组长度不足,会自动扩容数组。
343

被折叠的 条评论
为什么被折叠?



