Skip to content

Commit 4612930

Browse files
committed
Update
1 parent c3b274f commit 4612930

File tree

2 files changed

+74
-1
lines changed

2 files changed

+74
-1
lines changed

src/lib/segment-tree/segment-tree.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
findSumLinear,
77
generateIndexPair,
88
generateNumber
9-
} from '../../utils/test/helpers';
9+
} from '../../utils/tests/helpers';
1010
import { SegmentTree } from './segment-tree';
1111

1212
const input = [1, 2, 3, 4, -1, 2, -2, -3, -4, 10, -10];

src/utils/tests/helpers.ts

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
/**
2+
* @param array
3+
* @param minIndex
4+
* @param maxIndex
5+
*/
6+
export function findSumLinear(
7+
array: number[],
8+
minIndex: number,
9+
maxIndex: number
10+
): number {
11+
let sum = 0;
12+
for (let i = minIndex; i <= maxIndex; ++i) {
13+
sum += array[i];
14+
}
15+
return sum;
16+
}
17+
18+
/**
19+
* @param array
20+
* @param minIndex
21+
* @param maxIndex
22+
*/
23+
export function findMaxLinear(
24+
array: number[],
25+
minIndex: number,
26+
maxIndex: number
27+
): number {
28+
let max = -Infinity;
29+
for (let i = minIndex; i <= maxIndex; ++i) {
30+
if (max < array[i]) {
31+
max = array[i];
32+
}
33+
}
34+
return max;
35+
}
36+
37+
/**
38+
* @param array
39+
* @param minIndex
40+
* @param maxIndex
41+
*/
42+
export function findMinLinear(
43+
array: number[],
44+
minIndex: number,
45+
maxIndex: number
46+
): number {
47+
let min = Infinity;
48+
for (let i = minIndex; i <= maxIndex; ++i) {
49+
if (min > array[i]) {
50+
min = array[i];
51+
}
52+
}
53+
return min;
54+
}
55+
56+
/**
57+
* @param {number} arrayLength
58+
* @returns {number[]}
59+
*/
60+
export function generateIndexPair(arrayLength): number[] {
61+
const lastIndex = arrayLength - 1;
62+
const minIndex = generateNumber(0, lastIndex - 1);
63+
64+
return [minIndex, generateNumber(minIndex, lastIndex)];
65+
}
66+
67+
/**
68+
* @param min
69+
* @param max
70+
*/
71+
export function generateNumber(min, max): number {
72+
return min + Math.floor(Math.random() * (max - min + 1));
73+
}

0 commit comments

Comments
 (0)