Skip to content

Commit e17e490

Browse files
committed
Add deno test case
1 parent f188059 commit e17e490

File tree

3 files changed

+49
-0
lines changed

3 files changed

+49
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import {
2+
assertArrayIncludes,
3+
assertEquals,
4+
} from "https://deno.land/std@0.79.0/testing/asserts.ts";
5+
6+
import twoSum from './two-sum.ts'
7+
8+
Deno.test('[#0001] Two Sum', (): void => {
9+
assertEquals(
10+
twoSum([2, 7, 11, 15], 9),
11+
[0, 1],
12+
);
13+
14+
assertEquals(
15+
twoSum([3, 2, 4], 6),
16+
[1, 2],
17+
);
18+
19+
assertEquals(
20+
twoSum([3, 3], 6),
21+
[0, 1],
22+
);
23+
})
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import twoSum from './two-sum.ts';
2+
3+
test.each`
4+
nums | target | expected
5+
${[2, 7, 11, 15]} | ${9} | ${[0, 1]}
6+
${[3, 2, 4]} | ${6} | ${[1, 2]}
7+
${[3, 3]} | ${6} | ${[0, 1]}
8+
`('Two Sum: ($nums, $target)', ({ nums, target, expected }) =>
9+
expect(twoSum(nums, target)).toEqual(expected)
10+
);

problems/0001-two-sum/two-sum.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const twoSum = (nums: Array<number>, target: number): Array<number> => {
2+
const cached: { [index:number]: number } = {}
3+
let result: Array<number> = []
4+
5+
nums.some((num: number, index: number): boolean => {
6+
if (typeof cached[target - num] === 'number') {
7+
result = [cached[target - num], index]
8+
return true
9+
}
10+
cached[num] = index
11+
return false
12+
})
13+
return result
14+
};
15+
16+
export default twoSum;

0 commit comments

Comments
 (0)