2023-02-15 Daily Challenge

Today I have done leetcode's February LeetCoding Challenge with cpp.

February LeetCoding Challenge 15

Description

Add to Array-Form of Integer

The array-form of an integer num is an array representing its digits in left to right order.

  • For example, for num = 1321, the array form is [1,3,2,1].

Given num, the array-form of an integer, and an integer k, return the array-form of the integer num + k.

 

Example 1:

Input: num = [1,2,0,0], k = 34
Output: [1,2,3,4]
Explanation: 1200 + 34 = 1234

Example 2:

Input: num = [2,7,4], k = 181
Output: [4,5,5]
Explanation: 274 + 181 = 455

Example 3:

Input: num = [2,1,5], k = 806
Output: [1,0,2,1]
Explanation: 215 + 806 = 1021

 

Constraints:

  • 1 <= num.length <= 104
  • 0 <= num[i] <= 9
  • num does not contain any leading zeros except for the zero itself.
  • 1 <= k <= 104

Solution

class Solution {
public:
  vector<int> addToArrayForm(vector<int>& A, int K) {
    reverse(A.begin(), A.end());
    int carry = 0;
    int pos = 0;
    int len = A.size();
    while(carry || K) {
      int result = carry + K % 10;
      if(pos < len) result += A[pos];
      carry = result / 10;
      if(pos < len) A[pos] = result % 10;
      else A.push_back(result % 10);
      K /= 10;
      pos += 1;
    }
    reverse(A.begin(), A.end());
    return move(A);
  }
};

// Accepted
// 152/152 cases passed (19 ms)
// Your runtime beats 98.87 % of cpp submissions
// Your memory usage beats 99.93 % of cpp submissions (26.4 MB)