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