From 1c2de77112696a47ef5a095d555ee1daee39f0a4 Mon Sep 17 00:00:00 2001 From: moonjonghoo Date: Tue, 8 Apr 2025 02:05:27 +0900 Subject: [PATCH 1/4] valid-anagram solution --- valid-anagram/moonjonghoo.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 valid-anagram/moonjonghoo.js diff --git a/valid-anagram/moonjonghoo.js b/valid-anagram/moonjonghoo.js new file mode 100644 index 000000000..3a1a821cb --- /dev/null +++ b/valid-anagram/moonjonghoo.js @@ -0,0 +1,29 @@ +/** + * @param {string} s + * @param {string} t + * @return {boolean} + */ +var isAnagram = function (s, t) { + if (s.length !== t.length) return false; + let hashMap = new Map(); + for (let i = 0; i < s.length; i++) { + if (hashMap.has(s[i])) { + hashMap.set(s[i], hashMap.get(s[i]) + 1); + } else { + hashMap.set(s[i], 1); + } + } + for (let i = 0; i < t.length; i++) { + if (hashMap.has(t[i])) { + hashMap.set(t[i], hashMap.get(t[i]) - 1); + if (hashMap.get(t[i]) === 0) { + hashMap.delete(t[i]); + } + } + } + + if (hashMap.size === 0) return true; + else return false; +}; + +isAnagram("anagram", "nagaram"); From 363118ec3631166e2d44d456d8eb3ad1873080a5 Mon Sep 17 00:00:00 2001 From: moonjonghoo Date: Tue, 8 Apr 2025 13:51:08 +0900 Subject: [PATCH 2/4] climbing-stairs solution --- climbing-stairs/moonjonghoo.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 climbing-stairs/moonjonghoo.js diff --git a/climbing-stairs/moonjonghoo.js b/climbing-stairs/moonjonghoo.js new file mode 100644 index 000000000..ed1f32ad8 --- /dev/null +++ b/climbing-stairs/moonjonghoo.js @@ -0,0 +1,16 @@ +/** + * @param {number} n + * @return {number} + */ +var climbStairs = function (n) { + let dp = new Array(n + 1); + dp[1] = 1; + dp[2] = 2; + for (let i = 3; i <= n; i++) { + dp[i] = dp[i - 1] + dp[i - 2]; + } + return dp[n]; +}; + +console.log(climbStairs(2)); +console.log(climbStairs(3)); From 077063491dcd99dd4766b7384dd044303a59136a Mon Sep 17 00:00:00 2001 From: moonjonghoo Date: Wed, 9 Apr 2025 13:35:05 +0900 Subject: [PATCH 3/4] product-of-array-except-self solution --- product-of-array-except-self/moonjonghoo.js | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 product-of-array-except-self/moonjonghoo.js diff --git a/product-of-array-except-self/moonjonghoo.js b/product-of-array-except-self/moonjonghoo.js new file mode 100644 index 000000000..d65eb5aea --- /dev/null +++ b/product-of-array-except-self/moonjonghoo.js @@ -0,0 +1,22 @@ +/** + * @param {number[]} nums + * @return {number[]} + */ +var productExceptSelf = function (nums) { + let answer = []; + answer[0] = 1; + + for (let i = 1; i < nums.length; i++) { + answer[i] = answer[i - 1] * nums[i - 1]; + } + let right = 1; + + for (let i = nums.length - 1; i >= 0; i--) { + answer[i] *= right; + right *= nums[i]; + } + return answer; +}; + +productExceptSelf([1, 2, 3, 4]); +productExceptSelf([-1, 1, 0, -3, 3]); From eb8d2e1e51575ced1f07a672f84a41793f70e158 Mon Sep 17 00:00:00 2001 From: moonjonghoo Date: Thu, 10 Apr 2025 13:45:28 +0900 Subject: [PATCH 4/4] 3sum solution --- 3sum/moonjonghoo.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 3sum/moonjonghoo.js diff --git a/3sum/moonjonghoo.js b/3sum/moonjonghoo.js new file mode 100644 index 000000000..b20d53631 --- /dev/null +++ b/3sum/moonjonghoo.js @@ -0,0 +1,36 @@ +/** + * @param {number[]} nums + * @return {number[][]} + */ + +var threeSum = function (nums) { + let result = []; + nums.sort((a, b) => a - b); + + for (let i = 0; i < nums.length - 2; i++) { + if (i > 0 && nums[i] === nums[i - 1]) continue; + + let left = i + 1; + let right = nums.length - 1; + + while (left < right) { + const sum = nums[i] + nums[left] + nums[right]; + + if (sum === 0) { + result.push([nums[i], nums[left], nums[right]]); + + while (left < right && nums[left] === nums[left + 1]) left++; + while (left < right && nums[right] === nums[right - 1]) right--; + + left++; + right--; + } else if (sum < 0) { + left++; + } else { + right--; + } + } + } + + return result; +};