From 5ac7e7d837f49b8632f129a6dd4ba9c605f0a475 Mon Sep 17 00:00:00 2001 From: prograsshopper Date: Sat, 23 Aug 2025 01:28:15 +0900 Subject: [PATCH 1/2] week 5: Best Time to Buy and Sell Stock --- best-time-to-buy-and-sell-stock/prograsshopper.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 best-time-to-buy-and-sell-stock/prograsshopper.py diff --git a/best-time-to-buy-and-sell-stock/prograsshopper.py b/best-time-to-buy-and-sell-stock/prograsshopper.py new file mode 100644 index 000000000..4f79e8f8e --- /dev/null +++ b/best-time-to-buy-and-sell-stock/prograsshopper.py @@ -0,0 +1,11 @@ +class Solution: + def maxProfit(self, prices: List[int]) -> int: + max_profit = 0 + buy_price = float('inf') + + for price in prices: + buy_price = min(buy_price, price) + current_profit = price - buy_price + max_profit = max(max_profit, current_profit) + + return max_profit From b885adc120ca7216bd6dfd33221d254783100d69 Mon Sep 17 00:00:00 2001 From: prograsshopper Date: Sat, 23 Aug 2025 17:17:53 +0900 Subject: [PATCH 2/2] week 5: Group Anagrams --- group-anagrams/prograsshopper.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 group-anagrams/prograsshopper.py diff --git a/group-anagrams/prograsshopper.py b/group-anagrams/prograsshopper.py new file mode 100644 index 000000000..94d82088b --- /dev/null +++ b/group-anagrams/prograsshopper.py @@ -0,0 +1,28 @@ +class Solution: + def groupAnagrams(self, strs: List[str]) -> List[List[str]]: + # sol 1 -> Time Exceed + from collections import defaultdict + word_dict = defaultdict(list) + + for string in strs: + exist = False + for elem in word_dict.keys(): + if sorted(elem) == sorted(string): + word_dict[elem].append(string) + exist = True + break + if not exist: + word_dict[string] = [string, ] + result = [] + for elem in word_dict.values(): + result.append(elem) + return result + + # sol 2 + # Time Complexity O(mn) + result = defaultdict(list) + + for string in strs: + key = "".join(sorted(string)) + result[key].append(string) + return list(result.values())