From 9fc00cc47e8aaa55dda048a17ab2ed37368aa6b1 Mon Sep 17 00:00:00 2001 From: Joy Krishan Das Date: Sat, 8 Jul 2023 17:38:00 +0600 Subject: [PATCH 1/2] Added Python solution for 347. Top K Frequent Elements --- .../347_TopKFrequentElements/Solution.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Algorithms/Medium/347_TopKFrequentElements/Solution.py diff --git a/Algorithms/Medium/347_TopKFrequentElements/Solution.py b/Algorithms/Medium/347_TopKFrequentElements/Solution.py new file mode 100644 index 0000000..1fe2e20 --- /dev/null +++ b/Algorithms/Medium/347_TopKFrequentElements/Solution.py @@ -0,0 +1,19 @@ +class Solution: + def topKFrequent(self, nums: List[int], k: int) -> List[int]: + freq_arr = [ [] for _ in range(len(nums))] + elem_freq_map = {} + + for elem in nums: + elem_freq_map[elem] = elem_freq_map.get(elem, 0) + 1 + + for elem, idx in elem_freq_map.items(): + freq_arr[idx - 1].append(elem) + + res = [] + + for i in range(len(freq_arr) - 1, -1, -1): + if freq_arr[i]: res.extend(freq_arr[i]) + if len(res) == k: + return res + + return \ No newline at end of file From 57bb6d2f9a7dbf7fb0e4bfdbc38169dff73237ee Mon Sep 17 00:00:00 2001 From: Joy Krishan Das Date: Mon, 7 Aug 2023 23:58:24 +0600 Subject: [PATCH 2/2] space changes and line inserted to improve code readability --- Algorithms/Medium/347_TopKFrequentElements/Solution.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Algorithms/Medium/347_TopKFrequentElements/Solution.py b/Algorithms/Medium/347_TopKFrequentElements/Solution.py index 1fe2e20..d127658 100644 --- a/Algorithms/Medium/347_TopKFrequentElements/Solution.py +++ b/Algorithms/Medium/347_TopKFrequentElements/Solution.py @@ -1,6 +1,6 @@ class Solution: def topKFrequent(self, nums: List[int], k: int) -> List[int]: - freq_arr = [ [] for _ in range(len(nums))] + freq_arr = [[] for _ in range(len(nums))] elem_freq_map = {} for elem in nums: @@ -13,6 +13,7 @@ def topKFrequent(self, nums: List[int], k: int) -> List[int]: for i in range(len(freq_arr) - 1, -1, -1): if freq_arr[i]: res.extend(freq_arr[i]) + if len(res) == k: return res