Skip to content

Commit

Permalink
New Problem Solution "Add to Array-Form of Integer"
Browse files Browse the repository at this point in the history
  • Loading branch information
haoel committed Mar 25, 2019
1 parent 86183f9 commit f18b025
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ LeetCode

| # | Title | Solution | Difficulty |
|---| ----- | -------- | ---------- |
|989|[Add to Array-Form of Integer](https://leetcode.com/problems/add-to-array-form-of-integer/) | [C++](./algorithms/cpp/addToArrayFormOfInteger/AddToArrayFormOfInteger.cpp)|Easy|
|988|[Smallest String Starting From Leaf](https://leetcode.com/problems/smallest-string-starting-from-leaf/) | [C++](./algorithms/cpp/smallestStringStartingFromLeaf/SmallestStringStartingFromLeaf.cpp)|Medium|
|987|[Vertical Order Traversal of a Binary Tree](https://leetcode.com/problems/vertical-order-traversal-of-a-binary-tree/) | [C++](./algorithms/cpp/verticalOrderTraversalOfABinaryTree/VerticalOrderTraversalOfABinaryTree.cpp)|Medium|
|986|[Interval List Intersections](https://leetcode.com/problems/interval-list-intersections/) | [C++](./algorithms/cpp/intervalListIntersectons/IntervalListIntersections.cpp)|Medium|
Expand Down
62 changes: 62 additions & 0 deletions algorithms/cpp/addToArrayFormOfInteger/AddToArrayFormOfInteger.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
// Source : https://leetcode.com/problems/add-to-array-form-of-integer/
// Author : Hao Chen
// Date : 2019-03-25

/*****************************************************************************************************
*
* 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 <= A.length <= 10000
* 0 <= A[i] <= 9
* 0 <= K <= 10000
* If A.length > 1, then A[0] != 0
*
******************************************************************************************************/

class Solution {
public:
vector<int> addToArrayForm(vector<int>& A, int K) {
int carry = K;
for (int i = A.size() - 1; i >= 0 && carry > 0; i--) {
int a = A[i] + carry;
A[i] = a % 10 ;
carry = a / 10;
}

while ( carry > 0 ) {
A.insert(A.begin(), carry%10);
carry /= 10;
}

return A;
}
};

0 comments on commit f18b025

Please sign in to comment.