zoukankan      html  css  js  c++  java
  • LC 989. 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
    Runtime: 136 ms, faster than 100.00% of C++ online submissions for Add to Array-Form of Integer.
    Memory Usage: 11.9 MB, less than 100.00% of C++ online submissions for Add to Array-Form of Integer.
    class Solution {
    public:
      vector<int> addToArrayForm(vector<int>& A, int K) {
        vector<int> ka = itoarray(K);
        for(int a : ka) cout << a << endl;
        reverse(A.begin(), A.end());
        vector<int> ret;
        int endi = max(A.size(), ka.size());
        int add1, add2, sleft, sj; 
        sj = 0;
        for(int i=0; i<endi; i++) {
          add1 = add2 = sleft = 0;
          if(i < A.size()) add1 = A[i];
          if(i < ka.size()) add2 = ka[i];
          sleft = sj + add1 + add2;
          if(sleft >= 10) {sj = 1; sleft %= 10;}
          else sj = 0;
          ret.push_back(sleft);
        }   
        if(sj == 1) ret.push_back(1);
        reverse(ret.begin(), ret.end());
        return ret;
      }
      vector<int> itoarray(int K) {
        vector<int> a;
        while(K != 0) {
          a.push_back(K % 10);
          K /= 10; 
        }   
        return a;  
      }
    
    };
  • 相关阅读:
    Win10+Ubuntu18.04 UEFI启动模式SSD+HDD
    Chap1:全景图[Computer Science Illuminated]
    [IDE] ECLIPSE取消自动更新
    [Unit Test] Unit Test Brief Introduction
    [ English ] 俚语 “Ping me=打我电话”
    Some Useful Resources for the Future Usage
    python错误记录
    django-用户认证模型
    Djiango-富文本编辑器
    Djiango-建立模型抽象基类
  • 原文地址:https://www.cnblogs.com/ethanhong/p/10359872.html
Copyright © 2011-2022 走看看