File tree Expand file tree Collapse file tree 1 file changed +14
-24
lines changed Expand file tree Collapse file tree 1 file changed +14
-24
lines changed Original file line number Diff line number Diff line change 2
2
* @param {number[] } nums
3
3
* @return {boolean }
4
4
*/
5
- var canPartition = function ( nums ) {
6
- var sum = nums . reduce ( ( a , b ) => a + b , 0 ) ;
5
+ var canPartition = function ( nums ) {
6
+ const sum = nums . reduce ( ( a , b ) => a + b , 0 ) ;
7
7
if ( sum % 2 ) {
8
8
return false ;
9
9
}
10
-
11
- var dp = new Set ( ) ;
10
+
11
+ let dp = new Set ( ) ;
12
12
dp . add ( 0 ) ;
13
- var target = sum / 2 ;
14
-
15
- for ( var i = 0 ; i < nums . length ; i ++ ) {
16
- var targetPresent = false ;
17
- var nextDP = new Set ( ) ;
18
- dp . forEach ( t => {
19
- if ( ( t + nums [ i ] ) === target ) {
20
- targetPresent = true ;
13
+ const target = sum / 2 ;
14
+
15
+ for ( const num of nums ) {
16
+ const nextDP = new Set ( ) ;
17
+
18
+ for ( const t of dp ) {
19
+ if ( t + num === target ) {
20
+ return true ;
21
21
}
22
-
23
- nextDP . add ( t + nums [ i ] ) ;
22
+ nextDP . add ( t + num ) ;
24
23
nextDP . add ( t ) ;
25
- } ) ;
26
-
27
- if ( targetPresent ) {
28
- return true ;
29
24
}
30
-
31
25
dp = nextDP ;
32
26
}
33
-
34
- if ( dp . has ( target ) ) {
35
- return true ;
36
- }
37
-
27
+
38
28
return false ;
39
29
} ;
You can’t perform that action at this time.
0 commit comments