File tree Expand file tree Collapse file tree 3 files changed +56
-2
lines changed
Expand file tree Collapse file tree 3 files changed +56
-2
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for singly-linked list.
3+ * function ListNode(val) {
4+ * this.val = val;
5+ * this.next = null;
6+ * }
7+ */
8+ /**
9+ * @param {ListNode } l1
10+ * @param {ListNode } l2
11+ * @return {ListNode }
12+ */
13+ var addTwoNumbers = function ( l1 , l2 , res = [ 0 ] ) {
14+ if ( l1 === null && l2 === null ) {
15+ return res [ res . length - 1 ] === 0
16+ ? res . slice ( 0 , res . length - 1 )
17+ : res
18+ }
19+
20+ let l1Val , l2Val , l1Next , l2Next ;
21+
22+ if ( l1 === null ) {
23+ l1Val = 0
24+ l1Next = null
25+ } else {
26+ l1Val = l1 . val
27+ l1Next = l1 . next
28+ }
29+ if ( l2 === null ) {
30+ l2Val = 0
31+ l2Next = null
32+ } else {
33+ l2Val = l2 . val
34+ l2Next = l2 . next
35+ }
36+
37+ const curRes = l1Val + l2Val + res [ res . length - 1 ]
38+ res . splice (
39+ res . length - 1 ,
40+ res . length ,
41+ ...( String ( curRes >= 10 ? curRes : `0${ curRes } ` )
42+ . split ( '' )
43+ . reverse ( )
44+ . map ( i => Number ( i ) )
45+ )
46+ )
47+
48+ return addTwoNumbers (
49+ l1Next ,
50+ l2Next ,
51+ res
52+ )
53+ } ;
Original file line number Diff line number Diff line change 1+ 和笔算加法的逻辑差不多,给方法添加第三个参数,用以传入上一位的相加结果,递归调用方法,每次拿到当前的数字相加,把结果append进上次的相加结果中,append的同时需要处理上一位的进位。
Original file line number Diff line number Diff line change 44 * @return {number[] }
55 */
66var twoSum = function ( nums , target ) {
7- for ( let i = 0 ; i < nums . length ; i ++ ) {
7+ for ( let i = 0 ; i < nums . length ; i ++ ) {
88 const j = nums . indexOf ( target - nums [ i ] )
9- if ( ~ j && j !== i ) {
9+ if ( ~ j && j !== i ) {
1010 return [ i , j ]
1111 }
1212 }
You can’t perform that action at this time.
0 commit comments