此题在题意上可以理解为一个整数加1,如果原数组为[9,9,9,9],那么你的输出应该为[1,0,0,0,0]。
解题思路:
我们可以这么来想,整个数组从后向前遍历,如果当前存在连续的以9填充的部分,在经过加1之后,都会变为0,直到遍历到的位置不为9,那么只需要将当前的位置加1即可。如果数组最后一位不为9,那么很简单直接加1返回数组即可。
代码部分:
class Solution {
public int[] plusOne(int[] digits) {
int len = digits.length;
for(int n=len-1;n>=0;n--){
digits[n]=(digits[n]+1)%10;
if(digits[n]!=0){
return digits;
}
}
int ans[]=new int[len+1];
ans[0]=1;
return ans;
}
}