Given a number represented as an array of digits, plus one to the number.
01 public int[] plusOne(int[] digits) {
02 int length=digits.length;
03 int [] result=new int[length+1];
04 int last=length-1;
05 int lastA=length;
06
07 int sum=0;
08 int value=0;
09 int carrier=1;
10
11 while (last>=0)
12 {
13 sum=digits[last]+carrier;
14 value=sum%10;
15 carrier=sum/10;
16 result[lastA]=value;
17 last--;
18 lastA--;
19 }
20 if(lastA>=0)
21 result[lastA]=carrier;
22
23 if(result[0]==0)
24 {
25 int [] result2=new int[length];
26 for (int i=0;i<length;i++)
27 {
28 result2[i]=result[i+1];
29 }
30 return result2;
31 }
32 else
33 {
34 return result;
35 }
36 }
02 int length=digits.length;
03 int [] result=new int[length+1];
04 int last=length-1;
05 int lastA=length;
06
07 int sum=0;
08 int value=0;
09 int carrier=1;
10
11 while (last>=0)
12 {
13 sum=digits[last]+carrier;
14 value=sum%10;
15 carrier=sum/10;
16 result[lastA]=value;
17 last--;
18 lastA--;
19 }
20 if(lastA>=0)
21 result[lastA]=carrier;
22
23 if(result[0]==0)
24 {
25 int [] result2=new int[length];
26 for (int i=0;i<length;i++)
27 {
28 result2[i]=result[i+1];
29 }
30 return result2;
31 }
32 else
33 {
34 return result;
35 }
36 }
没有评论:
发表评论