题目描述:
Given a non-negative integer represented as a non-empty array of digits, plus one to the integer.
You may assume the integer do not contain any leading zero, except the number 0 itself.
The digits are stored such that the most significant digit is at the head of the list.
翻译:将一个用数组表示的整数加1以后,输出为数组,并且没有前导零
解题思路
对输入数组,从后往前遍历,当前位置上数字为9,则置为0,并继续遍历
否则,加上1,并将数组输出即可
特殊情况: 999这样的情况,000,需要在前面追加一个1,解决办法:新声明一个长度+1的数组,将其首位置1即可
代码:
class Solution {
public int[] plusOne(int[] digits) {
if(digits==null || digits.length==0)
return null;
int n = digits.length;
for(int i=n-1;i>=0;i--){
if(digits[i]==9){
digits[i] = 0;
}else{
digits[i]++;
return digits;
}
}
int[] res = new int[n+1];
res[0] = 1;
return res;
}