Skip to content

Commit bebde24

Browse files
committed
added piscina & productExceptSelf & findMaxAverage
1 parent 5071767 commit bebde24

File tree

8 files changed

+359
-51
lines changed

8 files changed

+359
-51
lines changed

package-lock.json

+298
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"@types/cli-progress": "^3.11.6",
4141
"@types/workerpool": "^6.4.7",
4242
"cli-progress": "^3.12.0",
43+
"piscina": "^4.9.2",
4344
"reflect-metadata": "^0.2.2",
4445
"workerpool": "^9.1.3"
4546
}

src/array/prefix_sum/product-except-self.ts

+10-15
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
11
function productExceptSelf(nums: number[]): number[] {
2-
const length = nums.length;
3-
const result = new Array(length).fill(1);
4-
5-
let prefix = 1;
6-
for (let i = 0; i < length; i++) {
7-
result[i] = prefix;
8-
prefix *= nums[i];
2+
const answer = new Array<number>(nums.length);
3+
answer[0] = 1;
4+
for (let i = 1; i < nums.length; i++) {
5+
answer[i] = answer[i - 1] * nums[i - 1];
96
}
10-
11-
let postfix = 1;
12-
for (let i = length - 1; i >= 0; i--) {
13-
result[i] *= postfix;
14-
postfix *= nums[i];
7+
let right = 1;
8+
for (let i = nums.length - 1; i > -1; i--) {
9+
answer[i] = answer[i] * right;
10+
right *= nums[i];
1511
}
16-
17-
return result;
18-
}
12+
return answer;
13+
};
1914

2015

2116
export function productExceptSelfDBG(){
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
function findMaxAverage(nums: number[], k: number): number {
2+
let windowSum = 0;
3+
4+
for (let i = 0; i < k; ++i) {
5+
windowSum += nums[i]
6+
}
7+
let pos1 = 0, highestSum = windowSum;
8+
9+
for (let i = k; i < nums.length; ++i) {
10+
windowSum = windowSum - nums[pos1++] + nums[i]
11+
highestSum = Math.max(highestSum, windowSum)
12+
}
13+
return highestSum / k
14+
};

src/main.ts

+1-17
Original file line numberDiff line numberDiff line change
@@ -1,17 +1 @@
1-
// 3 = 9 sec
2-
3-
4-
async function rateLimiter(str: string[], time: number) {
5-
for (let i = 0; i < str.length; i++) {
6-
await new Promise(res => setTimeout(res, time));
7-
console.log(str[i]);
8-
}
9-
}
10-
11-
const strs = [
12-
'one',
13-
'two',
14-
'three',
15-
]
16-
17-
rateLimiter(strs, 3000);
1+
console.log()

0 commit comments

Comments
 (0)