Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.
思路:将n加1,设置一个flag=1 ,如果那个位置加1有进位,则将当前位变为0,继续判断下一位,如果加1没有进位,则将这位加1,跳出循环。
代码如下(已通过leetcode)
public class Solution {
public int[] plusOne(int[] digits) {
int length=digits.length;
int flag=1;
for(int i=length-1;i>=0;i--) {
if(digits[i]==9) {
digits[i]=0;
flag=1;
} else {
digits[i]++;
flag=0;
break;
}
}
if(flag==0) return digits;
else {
int[] results= new int[length+1];
results[0]=1;
for(int i=0;i<length;i++)
results[i+1]=digits[i];
return results;
}
}
}