欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【思维题】B015_LC_数组形式的整数加法(不单独考虑进位)

程序员文章站 2024-03-14 18:32:46
...

一、Problem

对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。

给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。

输入:A = [1,2,0,0], K = 34
输出:[1,2,3,4]
解释:1200 + 34 = 1234

提示:

1 <= A.length <= 10000
0 <= A[i] <= 9
0 <= K <= 10000
如果 A.length > 1,那么 A[0] != 0

二、Solution

方法一:不单独考虑进位

这题如果单独考虑进位到一个变量 ca 中,到了最后进位 ca 和 K 讨论会很麻烦;

既然 K 是一个整数,而 A 中都是数字,不妨直接让 K 加上 A[i],然后让 K 自动进位,这是比较聪明的做法…

class Solution {
    public List<Integer> addToArrayForm(int[] A, int K) {
        int n = A.length;
        LinkedList<Integer> ans = new LinkedList<>();

        for (int i = n-1; i >= 0; i--) {
            K += A[i];
            ans.addFirst(K % 10);
            K /= 10;
        }
        while (K > 0) {
            ans.addFirst(K%10); K/=10;
        }
        return ans;
    }
}

复杂度分析

  • 时间复杂度:O(n)O(n)
  • 空间复杂度:O(n)O(n)
相关标签: # 思维题 思维