File tree Expand file tree Collapse file tree 3 files changed +50
-14
lines changed
find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance Expand file tree Collapse file tree 3 files changed +50
-14
lines changed Original file line number Diff line number Diff line change @@ -45,6 +45,8 @@ Step 2. Add the dependency
45
45
46
46
<summary >展开查看</summary >
47
47
48
+ https://leetcode.cn/problems/find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance/
49
+
48
50
https://leetcode.cn/problems/last-stone-weight-ii/
49
51
50
52
https://leetcode.cn/problems/delete-characters-to-make-fancy-string/
Original file line number Diff line number Diff line change
1
+ export default function findTheCity (
2
+ n : number ,
3
+ edges : number [ ] [ ] ,
4
+ distanceThreshold : number ,
5
+ ) : number {
6
+ const dp : number [ ] [ ] = Array ( n )
7
+ . fill ( 0 )
8
+ . map ( ( ) => Array ( n ) . fill ( Infinity ) ) ;
9
+ for ( const [ from , to , weight ] of edges ) {
10
+ dp [ from ] [ to ] = weight ;
11
+ dp [ to ] [ from ] = weight ;
12
+ }
13
+ for ( let k = 0 ; k < n ; k ++ ) {
14
+ for ( let u = 0 ; u < n ; u ++ ) {
15
+ for ( let v = 0 ; v < n ; v ++ ) {
16
+ dp [ u ] [ v ] = Math . min ( dp [ u ] [ v ] , dp [ u ] [ k ] + dp [ k ] [ v ] ) ;
17
+ }
18
+ }
19
+ }
20
+ let ans = - 1 ;
21
+ let min_nb = Infinity ;
22
+ for ( let u = 0 ; u < n ; ++ u ) {
23
+ let nb = 0 ;
24
+ for ( let v = 0 ; v < n ; ++ v ) {
25
+ if ( v != u && dp [ u ] [ v ] <= distanceThreshold ) ++ nb ;
26
+ }
27
+ if ( nb <= min_nb ) {
28
+ min_nb = nb ;
29
+ ans = u ;
30
+ }
31
+ }
32
+
33
+ return ans ;
34
+ }
Original file line number Diff line number Diff line change 1
- function lastStoneWeightII ( stones : number [ ] ) : number {
2
- const sum : number = stones . reduce ( ( a : number , b : number ) : number => a + b ) ;
3
- const target : number = Math . floor ( sum / 2 ) ;
4
- const n : number = stones . length ;
5
- // dp[j]表示容量(总数和)为j的背包所能装下的数(下标[0, i]之间任意取)的总和(<= 容量)的最大值
6
- const dp : number [ ] = new Array ( target + 1 ) . fill ( 0 ) ;
7
- for ( let i : number = 0 ; i < n ; i ++ ) {
8
- for ( let j : number = target ; j >= stones [ i ] ; j -- ) {
9
- dp [ j ] = Math . max ( dp [ j ] , dp [ j - stones [ i ] ] + stones [ i ] ) ;
10
- }
11
- }
12
- return sum - dp [ target ] - dp [ target ] ;
13
- }
14
- export default lastStoneWeightII ;
1
+ function lastStoneWeightII ( stones : number [ ] ) : number {
2
+ const sum : number = stones . reduce ( ( a : number , b : number ) : number => a + b ) ;
3
+ const target : number = Math . floor ( sum / 2 ) ;
4
+ const n : number = stones . length ;
5
+ // dp[j]表示容量(总数和)为j的背包所能装下的数(下标[0, i]之间任意取)的总和(<= 容量)的最大值
6
+ const dp : number [ ] = new Array ( target + 1 ) . fill ( 0 ) ;
7
+ for ( let i : number = 0 ; i < n ; i ++ ) {
8
+ for ( let j : number = target ; j >= stones [ i ] ; j -- ) {
9
+ dp [ j ] = Math . max ( dp [ j ] , dp [ j - stones [ i ] ] + stones [ i ] ) ;
10
+ }
11
+ }
12
+ return sum - dp [ target ] - dp [ target ] ;
13
+ }
14
+ export default lastStoneWeightII ;
You can’t perform that action at this time.
0 commit comments