题目:给一个用数组表示的非负整数,加一并返回。
假设数组除了 0 本身不会零打头(不会有 01,007 这样的数组)。
高位在数组的前面。
思路:遍历数组的每位,同时判断是否要进位,如果最后还有进位,则在数组最前面在插入1即可。
代码:
public int[] plusOne(int[] digits){
int n = digits.length;
for (int i = n-1;i >= 0;i--){
//若小于9,则加一,跳出循环返回
if (digits[i] < 9){
digits[i]++;
return digits;
}
digits[i] = 0;
}
//说明前面都是9,所以添加一位,设成1
int[] newDigits = new int[n+1];
newDigits[0] = 1;
return newDigits;
}