(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. 1 <= A.length <= 10000
  2. 0 <= A[i] <= 9
  3. 0 <= K <= 10000
  4. If A.length > 1, then A[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

123th LeetCode Weekly Contest Add to Array-Form of Integer

67. Add Binary [easy] (Python)