Skip to content

Commit bc9274a

Browse files
authored
Merge pull request #1235 from Moonjonghoo/main
[Moonjonghoo] WEEK 02 solutions
2 parents 17e0484 + eb8d2e1 commit bc9274a

File tree

4 files changed

+103
-0
lines changed

4 files changed

+103
-0
lines changed

3sum/moonjonghoo.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number[][]}
4+
*/
5+
6+
var threeSum = function (nums) {
7+
let result = [];
8+
nums.sort((a, b) => a - b);
9+
10+
for (let i = 0; i < nums.length - 2; i++) {
11+
if (i > 0 && nums[i] === nums[i - 1]) continue;
12+
13+
let left = i + 1;
14+
let right = nums.length - 1;
15+
16+
while (left < right) {
17+
const sum = nums[i] + nums[left] + nums[right];
18+
19+
if (sum === 0) {
20+
result.push([nums[i], nums[left], nums[right]]);
21+
22+
while (left < right && nums[left] === nums[left + 1]) left++;
23+
while (left < right && nums[right] === nums[right - 1]) right--;
24+
25+
left++;
26+
right--;
27+
} else if (sum < 0) {
28+
left++;
29+
} else {
30+
right--;
31+
}
32+
}
33+
}
34+
35+
return result;
36+
};

climbing-stairs/moonjonghoo.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
var climbStairs = function (n) {
6+
let dp = new Array(n + 1);
7+
dp[1] = 1;
8+
dp[2] = 2;
9+
for (let i = 3; i <= n; i++) {
10+
dp[i] = dp[i - 1] + dp[i - 2];
11+
}
12+
return dp[n];
13+
};
14+
15+
console.log(climbStairs(2));
16+
console.log(climbStairs(3));
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number[]}
4+
*/
5+
var productExceptSelf = function (nums) {
6+
let answer = [];
7+
answer[0] = 1;
8+
9+
for (let i = 1; i < nums.length; i++) {
10+
answer[i] = answer[i - 1] * nums[i - 1];
11+
}
12+
let right = 1;
13+
14+
for (let i = nums.length - 1; i >= 0; i--) {
15+
answer[i] *= right;
16+
right *= nums[i];
17+
}
18+
return answer;
19+
};
20+
21+
productExceptSelf([1, 2, 3, 4]);
22+
productExceptSelf([-1, 1, 0, -3, 3]);

valid-anagram/moonjonghoo.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @param {string} s
3+
* @param {string} t
4+
* @return {boolean}
5+
*/
6+
var isAnagram = function (s, t) {
7+
if (s.length !== t.length) return false;
8+
let hashMap = new Map();
9+
for (let i = 0; i < s.length; i++) {
10+
if (hashMap.has(s[i])) {
11+
hashMap.set(s[i], hashMap.get(s[i]) + 1);
12+
} else {
13+
hashMap.set(s[i], 1);
14+
}
15+
}
16+
for (let i = 0; i < t.length; i++) {
17+
if (hashMap.has(t[i])) {
18+
hashMap.set(t[i], hashMap.get(t[i]) - 1);
19+
if (hashMap.get(t[i]) === 0) {
20+
hashMap.delete(t[i]);
21+
}
22+
}
23+
}
24+
25+
if (hashMap.size === 0) return true;
26+
else return false;
27+
};
28+
29+
isAnagram("anagram", "nagaram");

0 commit comments

Comments
 (0)