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)