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 }