力扣 - 989. 数组形式的整数加法
题目
思路
- 从最低位开始加,满10用carry进1,最后还要判断最终有没有进1位
代码
class Solution {
public List<Integer> addToArrayForm(int[] num, int k) {
ArrayList<Integer> res = new ArrayList<Integer>();
int n = num.length - 1;
int carry = 0;
while (n >= 0 || k != 0) {
int a = n < 0 ? 0 : num[n];
int b = k % 10;
int temp = (a + b + carry) % 10;
carry = (a+ b + carry) / 10;
res.add(temp);
n--;
k /= 10;
}
if (carry == 1) {
res.add(1);
}
Collections.reverse(res);
return res;
}
}
复杂度分析
- 时间复杂度:\(O(N)\)
- 空间复杂度:\(O(N)\)
我走得很慢,但我从不后退!

浙公网安备 33010602011771号