Skip to content

Commit 53d6d10

Browse files
committed
Init commit
0 parents  commit 53d6d10

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2-addTwoNumbers.js
2+
3-lengthOfLongestSubstring.js
3+
4-medianOfTwoSortedArrays.js
4+
5-longestPalindromicSubstring.js
5+
6-ZigZagConversion.js
6+
7-reverseInteger.js
7+
8-stringToInteger(atoi).js
8+
9-palindromeNumber.js
9+
11-containerWithMostWater.js
10+
12-integerToRoman.js
11+
13-romanToInteger.js
12+
14-longestCommonPrefix.js
13+
15-threeSum.js

1-twoSum.js

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
// var twoSum = function (nums, target) {
2+
// for (let i = 0; i < nums.length; i++) {
3+
// for (let j = 0; j < nums.length; j++) {
4+
// let num1 = nums[i];
5+
// let num2 = nums[j];
6+
// if (num1 !== num2) {
7+
// let sum = num1 + num2;
8+
// if (sum === target) {
9+
// return [i, j];
10+
// }
11+
// }
12+
// }
13+
// }
14+
// };
15+
16+
// Faster Algorithm (O(n))
17+
18+
let twoSum = function (nums, target) {
19+
let mergeSort = function (array) {
20+
let merge = function (firstArray, secondArray) {
21+
let i = 0;
22+
let j = 0;
23+
let result = [];
24+
while (true) {
25+
if (firstArray[i] < secondArray[j]) {
26+
result.push(firstArray[i]);
27+
i++;
28+
} else {
29+
result.push(secondArray[j]);
30+
j++;
31+
}
32+
33+
if (i === firstArray.length) {
34+
return result.concat(
35+
secondArray.slice(j, secondArray.length)
36+
);
37+
} else if (j === secondArray.length) {
38+
return result.concat(
39+
firstArray.slice(i, firstArray.length)
40+
);
41+
}
42+
}
43+
};
44+
45+
if (array.length === 1) {
46+
return array;
47+
}
48+
const middleIndex = Math.floor(array.length / 2);
49+
const firstArray = mergeSort(array.slice(0, middleIndex));
50+
const secondArray = mergeSort(array.slice(middleIndex, array.length));
51+
const merged = merge(firstArray, secondArray);
52+
return merged;
53+
};
54+
55+
sortedArray = mergeSort(nums);
56+
let i = 0;
57+
let j = sortedArray.length - 1;
58+
59+
while (true) {
60+
let sum = sortedArray[i] + sortedArray[j];
61+
if (sum > target) {
62+
j--;
63+
} else if (sum < target) {
64+
i++;
65+
} else {
66+
let index1 = nums.indexOf(sortedArray[i]);
67+
nums[index1] = undefined;
68+
let index2 = nums.indexOf(sortedArray[j]);
69+
70+
return [index1, index2];
71+
}
72+
73+
if (i > j) {
74+
return "No solution";
75+
}
76+
}
77+
};
78+
79+
console.log(twoSum([3, 2, 4], 6));

0 commit comments

Comments
 (0)