File tree Expand file tree Collapse file tree 3 files changed +40
-23
lines changed Expand file tree Collapse file tree 3 files changed +40
-23
lines changed Original file line number Diff line number Diff line change @@ -10,6 +10,8 @@ leetcode 测试
10
10
11
11
##### 包含的内容如下
12
12
13
+ https://leetcode.cn/problems/array-nesting/
14
+
13
15
https://leetcode.cn/problems/super-ugly-number/
14
16
15
17
https://leetcode.cn/problems/ugly-number-iii/
Original file line number Diff line number Diff line change
1
+ export default function arrayNesting ( nums : number [ ] ) : number {
2
+ let ans = 0 ;
3
+ const n = nums . length ;
4
+ const vis : boolean [ ] = new Array ( n ) . fill ( 0 ) ;
5
+ for ( let i = 0 ; i < n ; ++ i ) {
6
+ let cnt = 0 ;
7
+ while ( ! vis [ i ] ) {
8
+ vis [ i ] = true ;
9
+ i = nums [ i ] ;
10
+ ++ cnt ;
11
+ }
12
+ ans = Math . max ( ans , cnt ) ;
13
+ }
14
+ return ans ;
15
+ }
Original file line number Diff line number Diff line change 1
- export default function nthSuperUglyNumber (
2
- n : number ,
3
- primes : number [ ]
4
- ) : number {
5
- const dp : number [ ] = new Array ( n + 1 ) . fill ( 0 ) ;
6
- const m = primes . length ;
7
- const pointers : number [ ] = new Array ( m ) . fill ( 0 ) ;
8
- const nums : number [ ] = new Array ( m ) . fill ( 1 ) ;
9
- for ( let i = 1 ; i <= n ; i ++ ) {
10
- let minNum = Number . MAX_SAFE_INTEGER ;
11
- for ( let j = 0 ; j < m ; j ++ ) {
12
- minNum = Math . min ( minNum , nums [ j ] ) ;
13
- }
14
- dp [ i ] = minNum ;
15
- for ( let j = 0 ; j < m ; j ++ ) {
16
- if ( nums [ j ] == minNum ) {
17
- pointers [ j ] ++ ;
18
- nums [ j ] = dp [ pointers [ j ] ] * primes [ j ] ;
19
- }
20
- }
21
- }
22
- return dp [ n ] ;
23
- }
1
+ export default function nthSuperUglyNumber (
2
+ n : number ,
3
+ primes : number [ ] ,
4
+ ) : number {
5
+ const dp : number [ ] = new Array ( n + 1 ) . fill ( 0 ) ;
6
+ const m = primes . length ;
7
+ const pointers : number [ ] = new Array ( m ) . fill ( 0 ) ;
8
+ const nums : number [ ] = new Array ( m ) . fill ( 1 ) ;
9
+ for ( let i = 1 ; i <= n ; i ++ ) {
10
+ let minNum = Number . MAX_SAFE_INTEGER ;
11
+ for ( let j = 0 ; j < m ; j ++ ) {
12
+ minNum = Math . min ( minNum , nums [ j ] ) ;
13
+ }
14
+ dp [ i ] = minNum ;
15
+ for ( let j = 0 ; j < m ; j ++ ) {
16
+ if ( nums [ j ] == minNum ) {
17
+ pointers [ j ] ++ ;
18
+ nums [ j ] = dp [ pointers [ j ] ] * primes [ j ] ;
19
+ }
20
+ }
21
+ }
22
+ return dp [ n ] ;
23
+ }
You can’t perform that action at this time.
0 commit comments