Plus One
题解:一个整数按位存储于一个int数组中,排列顺序为:最高位在array[0] ,最低位在[n-1],例如:98,存储为:array[0]=9; array[1]=8;
思路:
从数组的最后一位开始加1,需要考虑进位,如果到[0]位之后仍然有进位存在,需要新开一个长度为(n.length + 1)的数组,拷贝原来的数组。
代码:
public class Solution {
public int[] plusOne(int[] digits) {
if(digits.length == 0) return digits;
for(int i = digits.length - 1; i >= 0; i--){
if(digits[i] != 9){
digits[i]++;
return digits; //如果没有进位了就直接输出
}else digits[i] = 0;
}
int[] result=new int[digits.length+1]; //当执行到这一步时,则表示已经向最高位进了一个1,例如数为999时
result[0]=1;
return result;
}
}
本文介绍了一种解决整数按位存储于数组中并实现加一操作的方法。通过遍历数组处理进位,若最高位仍有进位则新建数组。文章提供了完整的Java代码实现。

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



