• [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     }
  • 相关阅读:
    字符串本质
    常用类
    异常处理
    最终类object 和内部类
    接口
    Java多态
    NIO之五Selector
    NIO之四Buffer
    NIO之三Socket通道
    JAVA NIO(二)Channel通道
  • 原文地址:https://www.cnblogs.com/lz87/p/10360803.html
Copyright © 2020-2023  润新知