File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ from typing import List
2+
3+ # Time Complexity O(n log n)
4+ # - traversing for loop takes O(n) to create hash dictionary,
5+ # - and when sorting by sorted function(TimSort) it takes O(nlogn)
6+ # Space Complexity O(n log n)
7+ # - creating hash dictionary takes O(n)
8+ # - and when sorting takes O(n), hash[x] occupy O(1)
9+
10+ class Solution :
11+ def topKFrequent (self , nums : List [int ], k : int ) -> List [int ]:
12+ hash = dict ()
13+
14+ # for loop nums to set count for each element in hash(dictionary)
15+ for num in nums :
16+ if num in hash :
17+ hash [num ] += 1
18+ else :
19+ hash [num ] = 1
20+
21+ # sort (TimSort), using lambda function to set a sorting key which is a count
22+ return sorted (hash , key = lambda x : hash [x ], reverse = True )[:k ]
23+
24+ if __name__ == "__main__" :
25+ solution = Solution ()
26+
27+ # test case
28+ nums_list = [
29+ [1 ,1 ,1 ,2 ,2 ,3 ], # [1, 2]
30+ [1 ] # [1]
31+ ]
32+ k_list = [2 , 1 ]
33+
34+ for i in range (2 ):
35+ nums = nums_list [i ]
36+ k = k_list [i ]
37+ result = solution .topKFrequent (nums , k )
38+ print (f"start{ i } " )
39+ print (f"input : { nums } , { k } " )
40+ print (f"result : { result } " )
41+
You can’t perform that action at this time.
0 commit comments