deno.land / x / masx200_leetcode_test@10.6.5 / map-sum-pairs / 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
import { PrefixTreeInsert,} from "../design-add-and-search-words-data-structure/PrefixTreeInsert.ts";import { PrefixTreeSearchPrefix } from "../implement-trie-prefix-tree/PrefixTreeSearchPrefix.ts";import { PrefixTreeWithSum } from "./PrefixTreeWithSum.ts";
class MapSum { #root = new PrefixTreeWithSum(); #map = new Map<string, number>(); insert(key: string, val: number): void { const value = this.#map.get(key) ?? 0; if (value === 0) { PrefixTreeInsert(this.#root, key, { each: (node) => (node.sum += val), create: () => new PrefixTreeWithSum(), }); } else { const delta = -value + val; PrefixTreeSearchPrefix(this.#root, key, { each(node) { node.sum += delta; }, }); } this.#map.set(key, val); }
sum(prefix: string): number { return PrefixTreeSearchPrefix(this.#root, prefix)?.sum ?? 0; }}
export default MapSum;
masx200_leetcode_test

Version Info

Tagged at
a year ago