数组形式的整数加法
整数的 数组形式 num
是按照从左到右的顺序表示其数字的数组。
- 例如,对于
num = 1321
,数组形式是 [1,3,2,1]
。
给定 num
,整数的 数组形式 ,和整数 k
,返回 整数 num + k
的 数组形式 。
示例 1:
1 2 3
| 输入:num = [1,2,0,0], k = 34 输出:[1,2,3,4] 解释:1200 + 34 = 1234
|
示例 2:
1 2 3
| 输入:num = [2,7,4], k = 181 输出:[4,5,5] 解释:274 + 181 = 455
|
示例 3:
1 2 3
| 输入:num = [2,1,5], k = 806 输出:[1,0,2,1] 解释:215 + 806 = 1021
|
提示:
1 <= num.length <= 10^4
0 <= num[i] <= 9
num
不包含任何前导零,除了零本身
1 <= k <= 10^4
加法模板
1 2 3 4 5 6 7 8 9
| while ( A 没完 || B 没完 || 进位没加完) A 的当前位 B 的当前位
和 = A 的当前位 + B 的当前位 + 进位carry
当前位 = 和 % 10; 进位 = 和 / 10;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class Solution { public List<Integer> addToArrayForm(int[] num, int k) { int n = num.length - 1; int carry = 0; int sum = 0; List<Integer> list = new LinkedList<>(); while (n >= 0 || k != 0 || carry > 0) { int x = n >= 0 ? num[n] : 0; int y = k % 10; sum = x + y + carry; carry = sum / 10; list.addFirst(sum % 10); n--; k /= 10; } return list; } }
|