题目链接:https://leetcode-cn.com/problems/plus-one/
题目如下:
class Solution {
public int[] plusOne(int[] digits) {
//tip:
//1、新建一个长度为当前长度+1的数组,并从数组的最后一位依次向前开始存放
//2、数组返回指定内容的方法为 Arrays.copyOfRange(array,pos+1,digits.length+1)
//3、做题时不要跳跃度大,一步一步慢慢走,完成之后才能去想可不可以跳跃
int[] array=new int[digits.length+1];
int pos=digits.length;
int carry=1,sum=0;//进位标记位
for(int i=digits.length-1;i>=0;i--){
if(carry==1) {sum=digits[i]+1;carry=0;}
else sum=digits[i];
if(sum>9) carry=1;
if(carry==0) array[pos--]=sum;
else array[pos--]=sum%10;
}
if(carry==1) array[pos--]=1;//防止出现最后一位是9的情况
return Arrays.copyOfRange(array,pos+1,digits.length+1);
}
}