[LeetCode 989] Add to Array-Form of Integer

Posted Push your limit!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode 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

 

A straightforward implementation is to convert K into an array just like A, then do the elementary-school digits by digits add up. A simpler approach is to treat K as a carry. 

Remember to use a linked list not array list to store the answer since adding at the head of a linked list takes O(1) and adding at the head of an array list takes O(N).

 1 public List<Integer> addToArrayForm(int[] A, int K) {
 2         List<Integer> res = new LinkedList<>();
 3         for (int i = A.length - 1; i >= 0; --i) {
 4             res.add(0, (A[i] + K) % 10);
 5             K = (A[i] + K) / 10;
 6         }
 7         while (K > 0) {
 8             res.add(0, K % 10);
 9             K /= 10;
10         }
11         return res;
12     }

 

以上是关于[LeetCode 989] Add to Array-Form of Integer的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode --- 989. Add to Array-Form of Integer 解题报告

LeetCode --- 989. Add to Array-Form of Integer 解题报告

leetcode——989.数组形式的整数加法

Add to Array-Form of Integer LT989

LeetCode:989,67(加法)

leetcode989