From 6d6a640cb27ca13aa6a6eaabfacd4996d69cb6d5 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Mon, 10 Nov 2025 18:03:32 +0900 Subject: [PATCH 1/5] two sum solution --- two-sum/prgmr99.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 two-sum/prgmr99.js diff --git a/two-sum/prgmr99.js b/two-sum/prgmr99.js new file mode 100644 index 0000000000..aa07d87353 --- /dev/null +++ b/two-sum/prgmr99.js @@ -0,0 +1,19 @@ +/** + * @param {number[]} nums + * @param {number} target + * @return {number[]} + */ +var twoSum = function (nums, target) { + const numMap = new Map(); + + for (let i = 0; i < nums.length; i++) { + const firstNum = nums[i]; + const secondNum = target - nums[i]; + + if (numMap.has(secondNum)) { + return [numMap.get(secondNum), i]; + } + + numMap.set(firstNum, i); + } +}; From b1728a94c19192abb6946487388d0029cffcf026 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Tue, 11 Nov 2025 09:04:52 +0900 Subject: [PATCH 2/5] contains duplicate solution --- contains-duplicate/prgmr99.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 contains-duplicate/prgmr99.js diff --git a/contains-duplicate/prgmr99.js b/contains-duplicate/prgmr99.js new file mode 100644 index 0000000000..9022d2a78d --- /dev/null +++ b/contains-duplicate/prgmr99.js @@ -0,0 +1,10 @@ +/** + * @param {number[]} nums + * @return {boolean} + */ +var containsDuplicate = function (nums) { + const numArrLength = nums.length; + const numSetSize = new Set(nums).size; + + return numArrLength !== numSetSize; +}; From 10b4ae1f77516b1451786e8dc60339cbaa409f35 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Tue, 11 Nov 2025 21:52:41 +0900 Subject: [PATCH 3/5] top-k-frequent-elements solution --- top-k-frequent-elements/prgmr99.js | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 top-k-frequent-elements/prgmr99.js diff --git a/top-k-frequent-elements/prgmr99.js b/top-k-frequent-elements/prgmr99.js new file mode 100644 index 0000000000..9abe29121b --- /dev/null +++ b/top-k-frequent-elements/prgmr99.js @@ -0,0 +1,33 @@ +/** + * @param {number[]} nums + * @param {number} k + * @return {number[]} + */ +var topKFrequent = function (nums, k) { + const result = []; + const numMap = new Map(); + + for (let i = 0; i < nums.length; i++) { + const currentValue = numMap.get(nums[i]); + + if (currentValue) { + numMap.set(nums[i], currentValue + 1); + } else { + numMap.set(nums[i], 1); + } + } + + const mapToArr = [...numMap.entries()]; + + mapToArr.sort((a, b) => { + if (a[1] < b[1]) return 1; + if (a[1] > b[1]) return -1; + return 0; + }); + + for (let i = 0; i < k; i++) { + result.push(mapToArr[i][0]); + } + + return result; +}; From 63b08eaa2b3fb421ae1cee87765d451d0a8f9a8f Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Thu, 13 Nov 2025 20:22:56 +0900 Subject: [PATCH 4/5] longest-consecutive-sequence solution --- longest-consecutive-sequence/prgmr99.js | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 longest-consecutive-sequence/prgmr99.js diff --git a/longest-consecutive-sequence/prgmr99.js b/longest-consecutive-sequence/prgmr99.js new file mode 100644 index 0000000000..e5b0d34154 --- /dev/null +++ b/longest-consecutive-sequence/prgmr99.js @@ -0,0 +1,33 @@ +/** + * @param {number[]} nums + * @return {number} + */ +var longestConsecutive = function (nums) { + let result = 1; + let maxLength = 1; + + if (nums.length === 0) return 0; + + const sortedNums = nums.sort((a, b) => a - b); + + for (let i = 1; i < sortedNums.length; i++) { + const prevNum = sortedNums[i - 1]; + const currentNum = sortedNums[i]; + + const diff = currentNum - prevNum; + + if (diff === 1) { + result += 1; + + if (maxLength < result) { + maxLength = result; + } + } else if (diff === 0) { + continue; + } else { + result = 1; + } + } + + return maxLength; +}; From f523c84eda841dc0b832ae86b149c66527ff29a4 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Fri, 14 Nov 2025 21:46:44 +0900 Subject: [PATCH 5/5] house-robber solution --- house-robber/prgmr99.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 house-robber/prgmr99.js diff --git a/house-robber/prgmr99.js b/house-robber/prgmr99.js new file mode 100644 index 0000000000..16b7357cfd --- /dev/null +++ b/house-robber/prgmr99.js @@ -0,0 +1,20 @@ +/** + * @param {number[]} nums + * @return {number} + */ +var rob = function (nums) { + let maxMoneyAtPrevHouse = 0; + let maxMoneyAtTwoHousesBack = 0; + + for (let i = 0; i < nums.length; i++) { + let currentMax = Math.max( + nums[i] + maxMoneyAtTwoHousesBack, + maxMoneyAtPrevHouse + ); + + maxMoneyAtTwoHousesBack = maxMoneyAtPrevHouse; + maxMoneyAtPrevHouse = currentMax; + } + + return maxMoneyAtPrevHouse; +};