Skip to content

Commit 25e472a

Browse files
committed
feat: 换一种思路解addTwoNumbers
1 parent 0fb5f05 commit 25e472a

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

algorithms/jcc-addTwoNumbers/addTwoNumbers.js

+36
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,39 @@
1111

1212
return sum.toString().split('').map(item => Number(item));
1313
};
14+
15+
// 换一种思路
16+
var twoNumbers = function(l1, l2) {
17+
function transformList (list, len) {
18+
let _list = [...list];
19+
while (_list.length < len) {
20+
_list.push(0);
21+
}
22+
23+
console.log(_list);
24+
25+
return _list;
26+
}
27+
// 因为每位最大为9,所以相加最大为18
28+
// 每位相加除10取余,做为当前位,下一位加1
29+
// 初始下位加0
30+
// 把两个数组位数补齐
31+
let pre = 0;
32+
const sumArray = [];
33+
const maxLength = l1.length >= l2.length ? l1.length : l2.length;
34+
const _l1 = transformList(l1, maxLength);
35+
const _l2 = transformList(l2, maxLength);
36+
37+
for (let i = 0; i < maxLength; i++) {
38+
sumArray[i] = (_l1[i] + _l2[i]) % 10 + pre;
39+
pre = _l1[i] + _l2[i] >= 10 ? 1 : 0;
40+
}
41+
42+
if (pre === 1) {
43+
sumArray.push(1);
44+
}
45+
46+
return sumArray;
47+
}
48+
49+
twoNumbers([1,2,6, 6], [2, 3, 4, 4]);

0 commit comments

Comments
 (0)