【思维题】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;
}
}
复杂度分析
- 时间复杂度:,
- 空间复杂度:,
上一篇: gym101061A——Cards
下一篇: 简单制作网页