LeetCode - Easy - 989. Add to Array-Form of Integer

Topic

  • Array

Description

https://leetcode.com/problems/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

Analysis

Submission

import java.util.LinkedList;
import java.util.List;

public class AddToArrayFormOfInteger {
	public List<Integer> addToArrayForm(int[] A, int K) {
		List<Integer> result = new LinkedList<>();
		int index = A.length - 1, carry = 0;
		while (index >= 0 || K > 0 || carry == 1) {
			int a = index < 0 ? 0 : A[index--];
			int b = K - (K / 10) * 10;
			K /= 10;
			int s = a + b + carry;
			result.add(0, s - (carry = s / 10) * 10);
		}

		return result;
	}
}

Test

import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;

import java.util.Arrays;
import org.junit.Test;

public class AddToArrayFormOfIntegerTest {

	@Test
	public void test() {
		AddToArrayFormOfInteger obj = new AddToArrayFormOfInteger();

		assertThat(obj.addToArrayForm(new int[] { 1, 2, 0, 0 }, 34), is(Arrays.asList(1, 2, 3, 4)));
		assertThat(obj.addToArrayForm(new int[] { 2, 7, 4 }, 181), is(Arrays.asList(4, 5, 5)));
		assertThat(obj.addToArrayForm(new int[] { 2, 1, 5 }, 806), is(Arrays.asList(1, 0, 2, 1)));
		assertThat(obj.addToArrayForm(new int[] { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 }, 1), //
				is(Arrays.asList(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)));
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章