Leetcode Variant-Plus N

Given a non-negative number represented as an array of digits, plus N to the number.

The digits are stored such that the most significant digit is at the head of the list.

N is guaranteed to be non-negative.

Solution:

 1 public class Solution {
 2     public int[] plusN(int[] digits, int n) {
 3         int carry = n;
 4         int index = digits.length-1;
 5         while (carry>0 && index>=0){
 6             int val = digits[index]+carry;
 7             carry = val/10;
 8             val = val%10;
 9             digits[index]=val;
10             index--;
11         }
12         int[] res;
13         if (index<0 && carry>0){
14             String cStr = Integer.toString(carry);
15             res = new int[cStr.length()+digits.length];
16             for (int i=0;i<cStr.length();i++)
17                 res[i]=cStr.charAt(i)-'0';
18             for (int i=0;i<digits.length;i++)
19                 res[i+cStr.length()]=digits[i];           
20         } else res = digits;
21         return res;
22     }
23 }

 

posted @ 2014-11-29 06:09  LiBlog  阅读(137)  评论(0编辑  收藏  举报