From 28c30e7c7a3a172e1bec87597b2e509dd021b0b4 Mon Sep 17 00:00:00 2001 From: SeonjaeLee Date: Thu, 12 Sep 2024 20:23:22 +0900 Subject: [PATCH 1/2] 1. Best Time To Buy And Sell Stock --- best-time-to-buy-and-sell-stock/sunjae95.js | 28 +++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 best-time-to-buy-and-sell-stock/sunjae95.js diff --git a/best-time-to-buy-and-sell-stock/sunjae95.js b/best-time-to-buy-and-sell-stock/sunjae95.js new file mode 100644 index 000000000..b49f26827 --- /dev/null +++ b/best-time-to-buy-and-sell-stock/sunjae95.js @@ -0,0 +1,28 @@ +/** + * @description + * brainstorming: + * brute force + * + * time complexity: O(n) + * space complexity: O(1) + */ +var maxProfit = function (prices) { + let answer, min, max; + prices.forEach((price, i) => { + if (i === 0) { + min = price; + max = price; + answer = 0; + return; + } + + if (price > max) max = price; + if (price < min) { + min = price; + max = price; + } + answer = Math.max(answer, max - min); + }); + + return answer; +}; From e92b357adcb714042357ae7c3341eccff7772834 Mon Sep 17 00:00:00 2001 From: SeonjaeLee Date: Fri, 13 Sep 2024 16:49:18 +0900 Subject: [PATCH 2/2] 2. Group Anagrams --- group-anagrams/sunjae95.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 group-anagrams/sunjae95.js diff --git a/group-anagrams/sunjae95.js b/group-anagrams/sunjae95.js new file mode 100644 index 000000000..b64afa64e --- /dev/null +++ b/group-anagrams/sunjae95.js @@ -0,0 +1,23 @@ +/** + * @description + * brainstorming: + * brute force + hashtable + * + * time complexity: O(n* k log k) + * space complexity: O(n* k) + */ +var groupAnagrams = function (strs) { + const map = new Map(); + const answer = []; + + strs.forEach((str) => { + const convertedStr = str.split("").sort().join(); + if (map.has(convertedStr)) + map.set(convertedStr, map.get(convertedStr).concat(str)); + else map.set(convertedStr, [str]); + }); + + map.forEach((value) => answer.push(value)); + + return answer; +};