deno.land / x / masx200_leetcode_test@10.6.5 / rank-from-stream-lcci / index.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
export default class StreamRank { #bit = new BinaryIndexTree(50001); constructor() {}
track(x: number): void { this.#bit.update(x + 1, 1); }
getRankOfNumber(x: number): number { return this.#bit.query(x + 1); }}export class BinaryIndexTree { static lowbit(x: number) { return x & -x; } #tree: number[]; constructor(public size: number) { this.#tree = Array(size + 1).fill(0); } update(i: number, x: number) { for (let p = i; p <= this.size; p += BinaryIndexTree.lowbit(p)) { this.#tree[p] += x; } } query(n: number) { let ans = 0; for (let p = n; p > 0; p -= BinaryIndexTree.lowbit(p)) { ans += this.#tree[p]; } return ans; }}
masx200_leetcode_test

Version Info

Tagged at
a year ago