File tree Expand file tree Collapse file tree 1 file changed +0
-6
lines changed
src/main/ts/g0401_0500/s0494_target_sum Expand file tree Collapse file tree 1 file changed +0
-6
lines changed Original file line number Diff line number Diff line change 5
5
function findTargetSumWays ( nums : number [ ] , s : number ) : number {
6
6
let sum : number = 0
7
7
s = Math . abs ( s )
8
-
9
8
for ( const num of nums ) {
10
9
sum += num
11
10
}
12
-
13
11
// Invalid s, just return 0
14
12
if ( s > sum || ( sum + s ) % 2 !== 0 ) {
15
13
return 0
16
14
}
17
-
18
15
const dp : number [ ] [ ] = new Array ( ( sum + s ) / 2 + 1 ) . fill ( null ) . map ( ( ) => new Array ( nums . length + 1 ) . fill ( 0 ) )
19
16
dp [ 0 ] [ 0 ] = 1
20
-
21
17
// Empty knapsack must be processed specially
22
18
for ( let i = 0 ; i < nums . length ; i ++ ) {
23
19
if ( nums [ i ] === 0 ) {
@@ -26,7 +22,6 @@ function findTargetSumWays(nums: number[], s: number): number {
26
22
dp [ 0 ] [ i + 1 ] = dp [ 0 ] [ i ]
27
23
}
28
24
}
29
-
30
25
for ( let i = 1 ; i < dp . length ; i ++ ) {
31
26
for ( let j = 0 ; j < nums . length ; j ++ ) {
32
27
dp [ i ] [ j + 1 ] += dp [ i ] [ j ]
@@ -35,7 +30,6 @@ function findTargetSumWays(nums: number[], s: number): number {
35
30
}
36
31
}
37
32
}
38
-
39
33
return dp [ ( sum + s ) / 2 ] [ nums . length ]
40
34
}
41
35
You can’t perform that action at this time.
0 commit comments