(Easy) Add to Array-Form of Integer (LeetCode)
Posted codingyangmao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(Easy) Add to Array-Form of Integer (LeetCode)相关的知识,希望对你有一定的参考价值。
Description:
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
Accepted
21,041
Submissions
47,722
Solution:
class Solution public List<Integer> addToArrayForm(int[] A, int K) List<Integer> list = new ArrayList<Integer>(); String n = Integer.toString(K); int[] tmp_K = new int[ n.length()]; int num = K; int k = n.length()-1; while(num>0) int digit = num % 10; tmp_K[k--] = digit; num = num/10; int digit = 0; int i = 0; int j = 0; int non_zero =0; for( i = n.length()-1, j = A.length-1; i>=0&&j>=0;i--,j--) int cur = A[j] + tmp_K[i] +digit ; digit = cur/10; list.add(0,cur%10); non_zero = i>=0? i: j; int cur1 =0; System.out.println("Check"+i+" "+j+" "+non_zero); if(j<0) for(int m = non_zero; m>=0; m--) cur1 = tmp_K[m]+digit; list.add(0, cur1 % 10); digit = cur1 /10; else for(int m = non_zero; m>=0; m--) cur1 = A[m]+digit; list.add(0,cur1%10); digit = cur1 /10; if(digit>0) list.add(0,1); return list;
以上是关于(Easy) Add to Array-Form of Integer (LeetCode)的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode --- 989. Add to Array-Form of Integer 解题报告
LeetCode --- 989. Add to Array-Form of Integer 解题报告
Add to Array-Form of Integer LT989
[LeetCode 989] Add to Array-Form of Integer