File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @return {number[] }
4+ */
5+ const largestDivisibleSubset = function ( nums ) {
6+ const n = nums . length ;
7+ if ( n === 0 || n === 1 ) return nums
8+ let maxSize = 0 ;
9+ const dp = Array ( n ) . fill ( 1 )
10+ nums . sort ( ( a , b ) => a - b )
11+ for ( let i = 1 ; i < n ; i ++ ) {
12+ for ( let j = i - 1 ; j >= 0 ; j -- ) {
13+ if ( nums [ i ] % nums [ j ] === 0 ) {
14+ const tmp = dp [ j ] + 1
15+ if ( tmp > dp [ i ] ) dp [ i ] = tmp
16+ }
17+ }
18+ if ( dp [ i ] > maxSize ) maxSize = dp [ i ]
19+ }
20+ const res = [ ]
21+ let pivot = 0
22+ for ( let i = n - 1 ; i >= 0 ; i -- ) {
23+ if ( dp [ i ] === maxSize && ( pivot % nums [ i ] === 0 ) ) {
24+ pivot = nums [ i ]
25+ maxSize --
26+ res . push ( nums [ i ] )
27+ }
28+ }
29+
30+ return res
31+ } ;
32+
33+ // another
34+
135/**
236 * @param {number[] } nums
337 * @return {number[] }
You can’t perform that action at this time.
0 commit comments