989. Add to Array-Form of Integer
Easy
For a non-negative integer X
, the array-form of X
is an array of its digits in left to right order. For example, if X = 1231
, then the array form is [1,2,3,1]
.
Given the array-form A
of a non-negative integer X
, return the array-form of the integer X+K
.
Example 1:
Input: A = [1,2,0,0], K = 34 Output: [1,2,3,4] Explanation: 1200 + 34 = 1234
Example 2:
Input: A = [2,7,4], K = 181 Output: [4,5,5] Explanation: 274 + 181 = 455
Example 3:
Input: A = [2,1,5], K = 806 Output: [1,0,2,1] Explanation: 215 + 806 = 1021
Example 4:
Input: A = [9,9,9,9,9,9,9,9,9,9], K = 1 Output: [1,0,0,0,0,0,0,0,0,0,0] Explanation: 9999999999 + 1 = 10000000000
Note:
1 <= A.length <= 10000
0 <= A[i] <= 9
0 <= K <= 10000
- If
A.length > 1
, thenA[0] != 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | class Solution { public List<Integer> addToArrayForm(int[] A, int K) { List<Integer> B = new ArrayList<>(); while(K>0){ B.add(K%10); K = K/10; } List<Integer> ret = new ArrayList<>(); int c = 0, nb = B.size(), j = 0; for(int i=A.length-1; i>=0; --i, ++j){ int r = A[i]+c; if(j<nb) r += B.get(j); ret.add(r%10); c = r/10; } while(j<nb){ int r = B.get(j++) + c; ret.add(r%10); c = r/10; } if(c>0) ret.add(c); Collections.reverse(ret); return ret; } } |
No comments:
Post a Comment