zoukankan      html  css  js  c++  java
  • 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;
                
        }
    };
  • 相关阅读:
    随记
    bzoj3551 [ONTAK2010]Peaks加强版
    bzoj2763 [JLOI2011]飞行路线
    bzoj1758 [Wc2010]重建计划
    bzoj1857 [Scoi2010]传送带
    bzoj4519 [Cqoi2016]不同的最小割
    bzoj2229 [Zjoi2011]最小割
    bzoj4129 Haruna’s Breakfast
    bzoj1835 [ZJOI2010] 基站选址
    bzoj2160 拉拉队排练
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/10360592.html
Copyright © 2011-2022 走看看