tree-multimap-typed 2.5.0 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/data-structures/base/index.d.ts +1 -0
- package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
- package/dist/types/data-structures/base/linear-base.d.ts +3 -3
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +252 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +294 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +527 -2
- package/dist/types/data-structures/binary-tree/bst.d.ts +505 -1
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +399 -0
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +126 -1
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +2881 -382
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +2867 -347
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2328 -312
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +2671 -277
- package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
- package/dist/types/data-structures/graph/directed-graph.d.ts +210 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +189 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +241 -10
- package/dist/types/data-structures/heap/heap.d.ts +294 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +360 -3
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +318 -3
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +380 -2
- package/dist/types/data-structures/matrix/matrix.d.ts +168 -0
- package/dist/types/data-structures/queue/deque.d.ts +319 -4
- package/dist/types/data-structures/queue/queue.d.ts +252 -0
- package/dist/types/data-structures/stack/stack.d.ts +210 -0
- package/dist/types/data-structures/trie/trie.d.ts +256 -4
- package/dist/types/interfaces/graph.d.ts +1 -1
- package/dist/types/types/common.d.ts +2 -2
- package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
- package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
- package/dist/types/types/utils/validate-type.d.ts +4 -4
- package/dist/umd/tree-multimap-typed.js +28009 -14563
- package/dist/umd/tree-multimap-typed.js.map +1 -1
- package/dist/umd/tree-multimap-typed.min.js +7 -1
- package/dist/umd/tree-multimap-typed.min.js.map +1 -1
- package/package.json +2 -2
- package/src/data-structures/base/index.ts +1 -0
- package/src/data-structures/base/iterable-entry-base.ts +8 -8
- package/src/data-structures/base/linear-base.ts +3 -3
- package/src/data-structures/binary-tree/avl-tree.ts +252 -0
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +295 -1
- package/src/data-structures/binary-tree/binary-tree.ts +527 -2
- package/src/data-structures/binary-tree/bst.ts +505 -1
- package/src/data-structures/binary-tree/red-black-tree.ts +399 -0
- package/src/data-structures/binary-tree/segment-tree.ts +127 -2
- package/src/data-structures/binary-tree/tree-map.ts +2958 -459
- package/src/data-structures/binary-tree/tree-multi-map.ts +3069 -549
- package/src/data-structures/binary-tree/tree-multi-set.ts +2476 -460
- package/src/data-structures/binary-tree/tree-set.ts +2816 -422
- package/src/data-structures/graph/abstract-graph.ts +4 -4
- package/src/data-structures/graph/directed-graph.ts +210 -0
- package/src/data-structures/graph/undirected-graph.ts +189 -0
- package/src/data-structures/hash/hash-map.ts +246 -15
- package/src/data-structures/heap/heap.ts +294 -0
- package/src/data-structures/linked-list/doubly-linked-list.ts +360 -3
- package/src/data-structures/linked-list/singly-linked-list.ts +318 -3
- package/src/data-structures/linked-list/skip-linked-list.ts +380 -2
- package/src/data-structures/matrix/matrix.ts +169 -1
- package/src/data-structures/queue/deque.ts +320 -5
- package/src/data-structures/queue/queue.ts +252 -0
- package/src/data-structures/stack/stack.ts +210 -0
- package/src/data-structures/trie/trie.ts +257 -5
- package/src/interfaces/graph.ts +1 -1
- package/src/types/common.ts +2 -2
- package/src/types/data-structures/heap/heap.ts +1 -0
- package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
- package/src/types/utils/validate-type.ts +4 -4
|
@@ -17,7 +17,7 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
|
|
|
17
17
|
* @returns Iterator of `[K, V]`.
|
|
18
18
|
* @remarks Time O(n) to iterate, Space O(1)
|
|
19
19
|
*/
|
|
20
|
-
[Symbol.iterator](...args:
|
|
20
|
+
[Symbol.iterator](...args: unknown[]): IterableIterator<[K, V]>;
|
|
21
21
|
/**
|
|
22
22
|
* Iterate over `[key, value]` pairs (may yield `undefined` values).
|
|
23
23
|
* @returns Iterator of `[K, V | undefined]`.
|
|
@@ -43,7 +43,7 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
|
|
|
43
43
|
* @returns `true` if all pass; otherwise `false`.
|
|
44
44
|
* @remarks Time O(n), Space O(1)
|
|
45
45
|
*/
|
|
46
|
-
every(predicate: EntryCallback<K, V, boolean>, thisArg?:
|
|
46
|
+
every(predicate: EntryCallback<K, V, boolean>, thisArg?: unknown): boolean;
|
|
47
47
|
/**
|
|
48
48
|
* Test whether any entry satisfies the predicate.
|
|
49
49
|
* @param predicate - `(key, value, index, self) => boolean`.
|
|
@@ -51,14 +51,14 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
|
|
|
51
51
|
* @returns `true` if any passes; otherwise `false`.
|
|
52
52
|
* @remarks Time O(n), Space O(1)
|
|
53
53
|
*/
|
|
54
|
-
some(predicate: EntryCallback<K, V, boolean>, thisArg?:
|
|
54
|
+
some(predicate: EntryCallback<K, V, boolean>, thisArg?: unknown): boolean;
|
|
55
55
|
/**
|
|
56
56
|
* Visit each entry, left-to-right.
|
|
57
57
|
* @param callbackfn - `(key, value, index, self) => void`.
|
|
58
58
|
* @param thisArg - Optional `this` for callback.
|
|
59
59
|
* @remarks Time O(n), Space O(1)
|
|
60
60
|
*/
|
|
61
|
-
forEach(callbackfn: EntryCallback<K, V, void>, thisArg?:
|
|
61
|
+
forEach(callbackfn: EntryCallback<K, V, void>, thisArg?: unknown): void;
|
|
62
62
|
/**
|
|
63
63
|
* Find the first entry that matches a predicate.
|
|
64
64
|
* @param callbackfn - `(key, value, index, self) => boolean`.
|
|
@@ -66,7 +66,7 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
|
|
|
66
66
|
* @returns Matching `[key, value]` or `undefined`.
|
|
67
67
|
* @remarks Time O(n), Space O(1)
|
|
68
68
|
*/
|
|
69
|
-
find(callbackfn: EntryCallback<K, V, boolean>, thisArg?:
|
|
69
|
+
find(callbackfn: EntryCallback<K, V, boolean>, thisArg?: unknown): [K, V] | undefined;
|
|
70
70
|
/**
|
|
71
71
|
* Whether the given key exists.
|
|
72
72
|
* @param key - Key to test.
|
|
@@ -134,17 +134,17 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
|
|
|
134
134
|
* Map entries using an implementation-specific strategy.
|
|
135
135
|
* @remarks Time O(n), Space O(n)
|
|
136
136
|
*/
|
|
137
|
-
abstract map(...args:
|
|
137
|
+
abstract map(...args: unknown[]): unknown;
|
|
138
138
|
/**
|
|
139
139
|
* Filter entries and return the same-species structure.
|
|
140
140
|
* @returns A new instance of the same concrete class (`this` type).
|
|
141
141
|
* @remarks Time O(n), Space O(n)
|
|
142
142
|
*/
|
|
143
|
-
abstract filter(...args:
|
|
143
|
+
abstract filter(...args: unknown[]): this;
|
|
144
144
|
/**
|
|
145
145
|
* Underlying iterator for the default iteration protocol.
|
|
146
146
|
* @returns Iterator of `[K, V]`.
|
|
147
147
|
* @remarks Time O(n), Space O(1)
|
|
148
148
|
*/
|
|
149
|
-
protected abstract _getIterator(...args:
|
|
149
|
+
protected abstract _getIterator(...args: unknown[]): IterableIterator<[K, V]>;
|
|
150
150
|
}
|
|
@@ -89,7 +89,7 @@ export declare abstract class LinearBase<E, R = any, NODE extends LinkedListNode
|
|
|
89
89
|
* @returns Index or `-1`.
|
|
90
90
|
* @remarks Time O(n), Space O(1)
|
|
91
91
|
*/
|
|
92
|
-
findIndex(predicate: ElementCallback<E, R, boolean>, thisArg?:
|
|
92
|
+
findIndex(predicate: ElementCallback<E, R, boolean>, thisArg?: unknown): number;
|
|
93
93
|
/**
|
|
94
94
|
* Concatenate elements and/or containers.
|
|
95
95
|
* @param items - Elements or other containers.
|
|
@@ -228,7 +228,7 @@ export declare abstract class LinearBase<E, R = any, NODE extends LinkedListNode
|
|
|
228
228
|
* @returns Iterator of elements from tail to head.
|
|
229
229
|
* @remarks Time O(n), Space O(1)
|
|
230
230
|
*/
|
|
231
|
-
protected abstract _getReverseIterator(...args:
|
|
231
|
+
protected abstract _getReverseIterator(...args: unknown[]): IterableIterator<E>;
|
|
232
232
|
}
|
|
233
233
|
/**
|
|
234
234
|
* Linked-list specialized linear container.
|
|
@@ -324,7 +324,7 @@ export declare abstract class LinearLinkedBase<E, R = any, NODE extends LinkedLi
|
|
|
324
324
|
* @returns Iterator over nodes.
|
|
325
325
|
* @remarks Time O(n), Space O(1)
|
|
326
326
|
*/
|
|
327
|
-
protected abstract _getNodeIterator(...args:
|
|
327
|
+
protected abstract _getNodeIterator(...args: unknown[]): IterableIterator<NODE>;
|
|
328
328
|
/**
|
|
329
329
|
* Get previous node of a given node.
|
|
330
330
|
* @param node - Current node.
|
|
@@ -282,6 +282,90 @@ export declare class AVLTree<K = any, V = any, R = any> extends BST<K, V, R> imp
|
|
|
282
282
|
|
|
283
283
|
|
|
284
284
|
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
|
|
285
369
|
|
|
286
370
|
|
|
287
371
|
|
|
@@ -329,6 +413,69 @@ export declare class AVLTree<K = any, V = any, R = any> extends BST<K, V, R> imp
|
|
|
329
413
|
|
|
330
414
|
|
|
331
415
|
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
|
|
332
479
|
|
|
333
480
|
|
|
334
481
|
|
|
@@ -377,6 +524,48 @@ export declare class AVLTree<K = any, V = any, R = any> extends BST<K, V, R> imp
|
|
|
377
524
|
|
|
378
525
|
|
|
379
526
|
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
|
|
568
|
+
|
|
380
569
|
* @example
|
|
381
570
|
* // Rebalance the tree
|
|
382
571
|
* const avl = new AVLTree<number>();
|
|
@@ -418,6 +607,69 @@ export declare class AVLTree<K = any, V = any, R = any> extends BST<K, V, R> imp
|
|
|
418
607
|
|
|
419
608
|
|
|
420
609
|
|
|
610
|
+
|
|
611
|
+
|
|
612
|
+
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
|
|
616
|
+
|
|
617
|
+
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
|
|
622
|
+
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
|
|
642
|
+
|
|
643
|
+
|
|
644
|
+
|
|
645
|
+
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
|
|
421
673
|
|
|
422
674
|
|
|
423
675
|
* @example
|
|
@@ -43,6 +43,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
|
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
46
88
|
* @example
|
|
47
89
|
* // Add delta at index
|
|
48
90
|
* const bit = new BinaryIndexedTree([1, 2, 3, 4, 5]);
|
|
@@ -68,6 +110,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
|
|
|
68
110
|
|
|
69
111
|
|
|
70
112
|
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
71
155
|
* @example
|
|
72
156
|
* // Set value at index
|
|
73
157
|
* const bit = new BinaryIndexedTree([1, 2, 3]);
|
|
@@ -92,6 +176,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
|
|
|
92
176
|
|
|
93
177
|
|
|
94
178
|
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
95
221
|
* @example
|
|
96
222
|
* // Get value at index
|
|
97
223
|
* const bit = new BinaryIndexedTree([1, 2, 3]);
|
|
@@ -117,6 +243,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
|
|
|
117
243
|
|
|
118
244
|
|
|
119
245
|
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
|
|
120
288
|
* @example
|
|
121
289
|
* // Prefix sum
|
|
122
290
|
* const bit = new BinaryIndexedTree([1, 2, 3, 4]);
|
|
@@ -140,6 +308,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
|
|
|
140
308
|
|
|
141
309
|
|
|
142
310
|
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
|
|
143
353
|
* @example
|
|
144
354
|
* // Range sum
|
|
145
355
|
* const bit = new BinaryIndexedTree([1, 2, 3, 4]);
|
|
@@ -166,6 +376,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
|
|
|
166
376
|
|
|
167
377
|
|
|
168
378
|
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
|
|
169
421
|
* @example
|
|
170
422
|
* // Find index with prefix sum ≥ target
|
|
171
423
|
* const bit = new BinaryIndexedTree([1, 2, 3, 4]);
|
|
@@ -180,6 +432,27 @@ export declare class BinaryIndexedTree implements Iterable<number> {
|
|
|
180
432
|
* Time: O(log n)
|
|
181
433
|
|
|
182
434
|
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
183
456
|
* @example
|
|
184
457
|
* // Find index with prefix sum > target
|
|
185
458
|
* const bit = new BinaryIndexedTree([1, 2, 3, 4]);
|
|
@@ -196,6 +469,27 @@ export declare class BinaryIndexedTree implements Iterable<number> {
|
|
|
196
469
|
* Time: O(n log n)
|
|
197
470
|
|
|
198
471
|
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
|
|
199
493
|
* @example
|
|
200
494
|
* // Convert to array
|
|
201
495
|
* const bit = new BinaryIndexedTree([1, 2, 3]);
|