Skip to content

Commit 8e1a2be

Browse files
leet code sum two num solution
1 parent fdf89ea commit 8e1a2be

File tree

4 files changed

+5755
-38
lines changed

4 files changed

+5755
-38
lines changed

Search algorithms/sumTwoNumbers.js

Lines changed: 11 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,12 @@
1-
import readline from "readline";
2-
3-
const prompt = readline.createInterface({
4-
input: process.stdin,
5-
output: process.stdout,
6-
});
7-
8-
prompt.question("Insert a target for search combination between 1 and 20: ", (number) => {
9-
const userInput = Number(number);
10-
const arr = [
11-
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
12-
];
13-
14-
const searchNumbers = (array, target) => {
15-
let left = 0;
16-
let rigth = array.length - 1;
17-
let temp = 0;
18-
while (left <= rigth) {
19-
let mid = left + (rigth - left / 2);
20-
if (array[mid] + array[temp] === target) {
21-
return [mid, temp];
22-
} else if (target < array[mid] + array[temp]) {
23-
rigth = mid - 1;
24-
temp = mid;
25-
} else {
26-
left = mid + 1;
27-
temp = mid;
28-
}
1+
const searchNumbers = (array, target) => {
2+
let map = new Map();
3+
for (let i = 0; i < array.length; i++) {
4+
let complement = target - array[i];
5+
if (map.has(complement)) {
6+
return [map.get(complement), i];
7+
} else {
8+
map.set(array[i], i);
299
}
30-
return "Not found combination ";
31-
};
32-
33-
console.log(searchNumbers(arr, userInput));
34-
35-
prompt.close();
36-
});
10+
}
11+
};
12+
module.exports = searchNumbers;
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
const searchNumbers = require("../Search algorithms/sumTwoNumbers.js");
2+
3+
test("Test #1", () => {
4+
expect(searchNumbers([-3, 4, 3, 90], 0)).toStrictEqual([0, 2]);
5+
});
6+
7+
test("Test #2", () => {
8+
expect(searchNumbers([2, 7, 11, 15], 9)).toStrictEqual([0, 1]);
9+
});
10+
11+
test("Test #3", () => {
12+
expect(searchNumbers([3, 2, 4], 6)).toStrictEqual([1, 2]);
13+
});
14+
15+
test("Test #4", () => {
16+
expect(searchNumbers([3, 3], 6)).toStrictEqual([0, 1]);
17+
});
18+
19+
// const arr = [-3, 4, 3, 90]; target = 0;
20+
21+
// //const arr = [2, 7, 11, 15]; //target = 9;
22+
23+
// // const arr = [3,2,4] target = 6;
24+
25+
// // const arr = [3,3]; target = 6

0 commit comments

Comments
 (0)