File tree Expand file tree Collapse file tree 4 files changed +1036
-5
lines changed
shu-zu-zhong-de-ni-xu-dui-lcof Expand file tree Collapse file tree 4 files changed +1036
-5
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/shu-zu-zhong-de-ni-xu-dui-lcof/
14
+
13
15
https://leetcode.cn/problems/rank-from-stream-lcci/
14
16
15
17
https://leetcode.cn/problems/minimum-cost-to-hire-k-workers/
Original file line number Diff line number Diff line change 1
1
export default class StreamRank {
2
- #bit = new BinaryIndexTree ( 50002 ) ;
2
+ #bit = new BinaryIndexTree ( 50001 ) ;
3
3
constructor ( ) { }
4
4
5
5
track ( x : number ) : void {
6
- this . #bit. change ( x + 1 , 1 ) ;
6
+ this . #bit. update ( x + 1 , 1 ) ;
7
7
}
8
8
9
9
getRankOfNumber ( x : number ) : number {
@@ -16,10 +16,10 @@ export class BinaryIndexTree {
16
16
}
17
17
#tree: number [ ] ;
18
18
constructor ( public size : number ) {
19
- this . #tree = Array ( size ) . fill ( 0 ) ;
19
+ this . #tree = Array ( size + 1 ) . fill ( 0 ) ;
20
20
}
21
- change ( i : number , x : number ) {
22
- for ( let p = i ; p < this . size ; p += BinaryIndexTree . lowbit ( p ) ) {
21
+ update ( i : number , x : number ) {
22
+ for ( let p = i ; p <= this . size ; p += BinaryIndexTree . lowbit ( p ) ) {
23
23
this . #tree[ p ] += x ;
24
24
}
25
25
}
Original file line number Diff line number Diff line change
1
+ import { BinaryIndexTree } from "../rank-from-stream-lcci/index.ts" ;
2
+ import { le as binarySearch } from "https://esm.sh/@masx200/[email protected] " ;
3
+ export default function reversePairs ( nums : number [ ] ) : number {
4
+ const n = nums . length ;
5
+ const tmp = Array . from ( nums ) ;
6
+ tmp . sort ( ( a , b ) => a - b ) ;
7
+ for ( let i = 0 ; i < n ; ++ i ) {
8
+ nums [ i ] = binarySearch ( tmp , nums [ i ] ) + 1 ;
9
+ }
10
+ const bit = new BinaryIndexTree ( n ) ;
11
+ let ans = 0 ;
12
+ for ( let i = n - 1 ; i >= 0 ; i -- ) {
13
+ ans += bit . query ( nums [ i ] - 1 ) ;
14
+ bit . update ( nums [ i ] , 1 ) ;
15
+ }
16
+ return ans ;
17
+ }
You can’t perform that action at this time.
0 commit comments