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

Posted 樱花落舞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了123th LeetCode Weekly Contest Add to Array-Form of Integer相关的知识,希望对你有一定的参考价值。

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

这题肯定有简单解法,写大数加法只是更熟练而已

class Solution {
public:
    vector<int> addToArrayForm(vector<int>& A, int K) {
        int len = A.size();
        int num=0;
        vector<int>Ve;
        int a[11000]={0},b[11000]={0},c[11000]={0};
        for(int i=len-1;i>=0;i--){
            a[num++]=A[i];
            //cout<<A[i]<<endl;
        }
        int cnt=0;
        int i;
        while(K){
            b[cnt++]=K%10;
            K/=10;
        }
        //cout<<"B"<<endl;
        int k=max(len,cnt);
       
        for(i=0;i<k;i++)
        {
            //cout<<a[i]<<" "<<b[i]<<endl;
            c[i]=a[i]+b[i];
        }
        for(i=0; i<k; i++){
            //cout<<"A1"<<endl;
            if(c[i]>=10){
                c[i+1]+=c[i]/10;
                c[i]%=10;
            }
            //cout<<"A2"<<endl;
        }
        
        if(c[k]==0) k--;
         for(i=k;i>=0;i--){
             Ve.push_back(c[i]);
         }
             
        
        return Ve;
            
    }
};

 

以上是关于123th LeetCode Weekly Contest Add to Array-Form of Integer的主要内容,如果未能解决你的问题,请参考以下文章

118th LeetCode Weekly Contest Pancake Sorting

113th LeetCode Weekly Contest Flip Equivalent Binary Trees

108th LeetCode Weekly Contest Minimum Falling Path Sum

113th LeetCode Weekly Contest Reveal Cards In Increasing Order

116th LeetCode Weekly Contest Maximum Width Ramp

113th LeetCode Weekly Contest Largest Time for Given Digits