提交代码:
class Solution {
public int[] plusOne(int[] digits) {
int i,num;
List<Integer> tmp=new ArrayList<Integer>();
int ones=(digits[digits.length-1]+1)%10;
int carry=(digits[digits.length -1]+1)/10;
tmp.add(ones);
for(i=digits.length-2;i>=0;i--) {
if(carry==0) {
for(int j=i;j>=0;j--)
tmp.add(digits[j]);
break;
}
else {
num=(digits[i]+carry)%10;
carry=(digits[i]+carry)/10;
tmp.add(num);
}
}
if(carry!=0)
tmp.add(carry);
int[] ans=new int[tmp.size()];
for(i=tmp.size()-1;i>=0;i--)
ans[tmp.size()-1-i]=tmp.get(i);
return ans;
}
}
运行结果:

本文介绍了一个加一算法的实现过程,通过使用Java编程语言,详细展示了如何在一个整数数组上执行加一操作,并处理进位问题。算法首先从数组的最低位开始加一,然后向前遍历数组,处理可能产生的进位,直至最高位。如果最高位仍有进位,则需在数组前增加一个元素。该算法适用于数字较大,无法直接用整型变量表示的情况。
4349

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



