Skip to content

Commit f206d2c

Browse files
authored
Improved tasks 2630-2637
1 parent baef259 commit f206d2c

File tree

10 files changed

+172
-143
lines changed

10 files changed

+172
-143
lines changed

Diff for: src/main/java/g2601_2700/s2619_array_prototype_last/solution.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
declare global {
44
interface Array<T> {
5-
last(): T | -1;
5+
last(): T | -1
66
}
77
}
88

9-
Array.prototype.last = function () {//NOSONAR
9+
Array.prototype.last = function () { //NOSONAR
1010
return this.length !== 0 ? this[this.length - 1] : -1
1111
}
1212

@@ -15,4 +15,4 @@ Array.prototype.last = function () {//NOSONAR
1515
* arr.last(); // 3
1616
*/
1717

18-
export { }
18+
export {}

Diff for: src/main/java/g2601_2700/s2621_sleep/solution.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// #Easy #2023_08_31_Time_40_ms_(99.59%)_Space_42.3_MB_(77.98%)
22

33
async function sleep(millis: number): Promise<void> {
4-
await new Promise(resolve => setTimeout(resolve, millis));
4+
await new Promise((resolve) => setTimeout(resolve, millis))
55
}
66

77
/*

Diff for: src/main/java/g2601_2700/s2630_memoize_ii/solution.ts

+23-26
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,41 @@
33
type Fn = (...params: any) => any
44

55
function memoize(fn: Fn): Fn {
6-
const cache = new Map();
6+
const cache = new Map()
77

8-
return function(...args) {
9-
let currentCache;
8+
return function (...args) {
9+
let currentCache
1010
if (cache.has(args.length)) {
11-
currentCache = cache.get(args.length);
12-
}
13-
else {
14-
currentCache = new Map();
15-
cache.set(args.length, currentCache);
11+
currentCache = cache.get(args.length)
12+
} else {
13+
currentCache = new Map()
14+
cache.set(args.length, currentCache)
1615
}
1716

18-
for (let i=0, len=args.length; i<=len; i++){
19-
const arg = args[i];
20-
const isEnd = i >= len - 1;
17+
for (let i = 0, len = args.length; i <= len; i++) {
18+
const arg = args[i]
19+
const isEnd = i >= len - 1
2120

2221
if (currentCache.has(arg)) {
2322
if (isEnd) {
24-
return currentCache.get(arg);
25-
}
26-
else {
27-
currentCache = currentCache.get(arg);
23+
return currentCache.get(arg)
24+
} else {
25+
currentCache = currentCache.get(arg)
2826
}
29-
}
30-
else if (isEnd) {
31-
break;
27+
} else if (isEnd) {
28+
break
3229
} else {
33-
const newSubCache = new Map();
30+
const newSubCache = new Map()
3431

35-
currentCache.set(arg, newSubCache);
36-
currentCache = newSubCache;
32+
currentCache.set(arg, newSubCache)
33+
currentCache = newSubCache
3734
}
3835
}
3936

40-
let value = fn(...args);
37+
let value = fn(...args)
4138

42-
currentCache.set(args[args.length - 1], value);
43-
return value;
39+
currentCache.set(args[args.length - 1], value)
40+
return value
4441
}
4542
}
4643

@@ -52,7 +49,7 @@ function memoize(fn: Fn): Fn {
5249
* })
5350
* memoizedFn(2, 3) // 5
5451
* memoizedFn(2, 3) // 5
55-
* console.log(callCount) // 1
52+
* console.log(callCount) // 1
5653
*/
5754

58-
export { memoize }
55+
export { memoize }

Diff for: src/main/java/g2601_2700/s2631_group_by/solution.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@ declare global {
66
}
77
}
88

9-
Array.prototype.groupBy = function<T>(fn: (item: T) => string) { //NOSONAR
10-
const returnObject: Record<string, T[]> = {};
11-
for (const item of this) {
12-
const key = fn(item);
13-
if (key in returnObject) {
14-
returnObject[key].push(item);
15-
} else {
16-
returnObject[key] = [item];
9+
Array.prototype.groupBy = function <T>(fn: (item: T) => string) { //NOSONAR
10+
const returnObject: Record<string, T[]> = {}
11+
for (const item of this) {
12+
const key = fn(item)
13+
if (key in returnObject) {
14+
returnObject[key].push(item)
15+
} else {
16+
returnObject[key] = [item]
17+
}
1718
}
18-
}
19-
return returnObject;
20-
};
19+
return returnObject
20+
}
2121

2222
/*
2323
* [1,2,3].groupBy(String) // {"1":[1],"2":[2],"3":[3]}
2424
*/
2525

26-
export { }
26+
export {}

Diff for: src/main/java/g2601_2700/s2637_promise_time_limit/solution.ts

+10-11
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
// #Easy #Medium #2023_08_31_Time_53_ms_(93.41%)_Space_42.7_MB_(62.71%)
22

3-
type Fn = (...params: any[]) => Promise<any>;
3+
type Fn = (...params: any[]) => Promise<any>
44

55
function timeLimit(fn: Fn, t: number): Fn {
6-
return async function (...args: any[]): Promise<any> {
7-
const fns = fn(...args);
8-
const timeLimitPromise = new Promise((_, reject) => {
9-
setTimeout(() => {
10-
reject(new Error('Time Limit Exceeded'));
11-
}, t);
12-
});
13-
14-
return Promise.race([fns, timeLimitPromise]);
15-
};
6+
return async function (...args: any[]): Promise<any> {
7+
const fns = fn(...args)
8+
const timeLimitPromise = new Promise((_, reject) => {
9+
setTimeout(() => {
10+
reject(new Error('Time Limit Exceeded'))
11+
}, t)
12+
})
13+
return Promise.race([fns, timeLimitPromise])
14+
}
1615
}
1716

1817
/*

Diff for: src/test/java/g2601_2700/s2630_memoize_ii/solution.test.ts

+36-15
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,55 @@ import { memoize } from 'src/main/java/g2601_2700/s2630_memoize_ii/solution'
33
import { expect, test } from 'vitest'
44

55
test('memoize', () => {
6-
let getInputs = () => [[2,2],[2,2],[1,2]]
7-
let results = [4,4,3]
8-
let fn = function (a, b) { return a + b; }
6+
let getInputs = () => [
7+
[2, 2],
8+
[2, 2],
9+
[1, 2],
10+
]
11+
let results = [4, 4, 3]
12+
let fn = function (a, b) {
13+
return a + b
14+
}
915
let memorized = memoize(fn)
1016
let inputs = getInputs()
11-
for (let i = 0; i < inputs.length; i++ ) {
12-
expect(memorized(...inputs[i])).toEqual(results[i])
17+
for (let i = 0; i < inputs.length; i++) {
18+
expect(memorized(...inputs[i])).toEqual(results[i])
1319
}
1420
})
1521

1622
test('memoize2', () => {
17-
let getInputs = () => [[{},{}],[{},{}],[{},{}]]
18-
let results = [{},{},{}]
19-
let fn = function (a, b) { return ({...a, ...b}); }
23+
let getInputs = () => [
24+
[{}, {}],
25+
[{}, {}],
26+
[{}, {}],
27+
]
28+
let results = [{}, {}, {}]
29+
let fn = function (a, b) {
30+
return { ...a, ...b }
31+
}
2032
let memorized = memoize(fn)
2133
let inputs = getInputs()
22-
for (let i = 0; i < inputs.length; i++ ) {
23-
expect(memorized(...inputs[i])).toEqual(results[i])
34+
for (let i = 0; i < inputs.length; i++) {
35+
expect(memorized(...inputs[i])).toEqual(results[i])
2436
}
2537
})
2638

2739
test('memoize3', () => {
28-
let getInputs = () => { const o = {}; return [[o,o],[o,o],[o,o]]; }
29-
let results = [{},{},{}]
30-
let fn = function (a, b) { return ({...a, ...b}); }
40+
let getInputs = () => {
41+
const o = {}
42+
return [
43+
[o, o],
44+
[o, o],
45+
[o, o],
46+
]
47+
}
48+
let results = [{}, {}, {}]
49+
let fn = function (a, b) {
50+
return { ...a, ...b }
51+
}
3152
let memorized = memoize(fn)
3253
let inputs = getInputs()
33-
for (let i = 0; i < inputs.length; i++ ) {
34-
expect(memorized(...inputs[i])).toEqual(results[i])
54+
for (let i = 0; i < inputs.length; i++) {
55+
expect(memorized(...inputs[i])).toEqual(results[i])
3556
}
3657
})

Diff for: src/test/java/g2601_2700/s2631_group_by/solution.test.ts

+23-23
Original file line numberDiff line numberDiff line change
@@ -4,43 +4,43 @@ import { expect, test } from 'vitest'
44

55
test('groupBy', () => {
66
let fn = function (item) {
7-
return item.id;
8-
}
9-
let array = [
10-
{"id":"1"},
11-
{"id":"1"},
12-
{"id":"2"}
13-
].groupBy(fn)
7+
return item.id
8+
}
9+
let array = [{ id: '1' }, { id: '1' }, { id: '2' }].groupBy(fn)
1410
let result = {
15-
"1": [{"id": "1"}, {"id": "1"}],
16-
"2": [{"id": "2"}]
17-
}
11+
'1': [{ id: '1' }, { id: '1' }],
12+
'2': [{ id: '2' }],
13+
}
1814
expect(array).toEqual(result)
1915
})
2016

2117
test('groupBy2', () => {
2218
let fn = function (list) {
23-
return String(list[0]);
24-
}
19+
return String(list[0])
20+
}
2521
let array = [
26-
[1, 2, 3],
27-
[1, 3, 5],
28-
[1, 5, 9]
29-
].groupBy(fn)
22+
[1, 2, 3],
23+
[1, 3, 5],
24+
[1, 5, 9],
25+
].groupBy(fn)
3026
let result = {
31-
"1": [[1, 2, 3], [1, 3, 5], [1, 5, 9]]
32-
}
27+
'1': [
28+
[1, 2, 3],
29+
[1, 3, 5],
30+
[1, 5, 9],
31+
],
32+
}
3333
expect(array).toEqual(result)
3434
})
3535

3636
test('groupBy3', () => {
3737
let fn = function (n) {
38-
return String(n > 5);
39-
}
38+
return String(n > 5)
39+
}
4040
let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].groupBy(fn)
4141
let result = {
42-
"true": [6, 7, 8, 9, 10],
43-
"false": [1, 2, 3, 4, 5]
44-
}
42+
true: [6, 7, 8, 9, 10],
43+
false: [1, 2, 3, 4, 5],
44+
}
4545
expect(array).toEqual(result)
4646
})

Diff for: src/test/java/g2601_2700/s2634_filter_elements_from_array/solution.test.ts

+15-9
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,25 @@ import { filter } from 'src/main/java/g2601_2700/s2634_filter_elements_from_arra
33
import { expect, test } from 'vitest'
44

55
test('filter', () => {
6-
let arr = [0,10,20,30]
7-
let fn = function greaterThan10(n) { return n > 10; }
8-
expect(filter(arr,fn)).toEqual([20, 30])
6+
let arr = [0, 10, 20, 30]
7+
let fn = function greaterThan10(n) {
8+
return n > 10
9+
}
10+
expect(filter(arr, fn)).toEqual([20, 30])
911
})
1012

1113
test('filter2', () => {
12-
let arr = [-2,-1,0,1,2]
13-
let fn = function plusOne(n) { return n + 1 }
14-
expect(filter(arr,fn)).toEqual([-2,0,1,2])
14+
let arr = [-2, -1, 0, 1, 2]
15+
let fn = function plusOne(n) {
16+
return n + 1
17+
}
18+
expect(filter(arr, fn)).toEqual([-2, 0, 1, 2])
1519
})
1620

1721
test('filter3', () => {
18-
let arr = [1,2,3]
19-
let fn = function firstIndex(n, i) { return i === 0; }
20-
expect(filter(arr,fn)).toEqual([1])
22+
let arr = [1, 2, 3]
23+
let fn = function firstIndex(n, i) {
24+
return i === 0
25+
}
26+
expect(filter(arr, fn)).toEqual([1])
2127
})

Diff for: src/test/java/g2601_2700/s2635_apply_transform_over_each_element_in_array/solution.test.ts

+15-9
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,25 @@ import { map } from 'src/main/java/g2601_2700/s2635_apply_transform_over_each_el
33
import { expect, test } from 'vitest'
44

55
test('map', () => {
6-
let arr = [1,2,3]
7-
let fn = function plusone(n) { return n + 1; }
8-
expect(map(arr,fn)).toEqual([2,3,4])
6+
let arr = [1, 2, 3]
7+
let fn = function plusone(n) {
8+
return n + 1
9+
}
10+
expect(map(arr, fn)).toEqual([2, 3, 4])
911
})
1012

1113
test('map2', () => {
12-
let arr = [1,2,3]
13-
let fn = function plusI(n, i) { return n + i; }
14-
expect(map(arr,fn)).toEqual([1,3,5])
14+
let arr = [1, 2, 3]
15+
let fn = function plusI(n, i) {
16+
return n + i
17+
}
18+
expect(map(arr, fn)).toEqual([1, 3, 5])
1519
})
1620

1721
test('map3', () => {
18-
let arr = [10,20,30]
19-
let fn = function constant() { return 42; }
20-
expect(map(arr,fn)).toEqual([42,42,42])
22+
let arr = [10, 20, 30]
23+
let fn = function constant() {
24+
return 42
25+
}
26+
expect(map(arr, fn)).toEqual([42, 42, 42])
2127
})

0 commit comments

Comments
 (0)