Back to course home
0% completed
Vote For New Content
Alternative solution using bucket sort (python)
Matteo Mortella
Mar 7, 2025
class Solution: # Method to sort the array based on frequency def frequencySort(self, nums): from collections import Counter freq = Counter(nums) buckets = [[] for _ in range(max(freq.values()))] # create k buckets for num in freq: # populate buckets (0-based) buckets[freq[num]-1].append(num) sorted_arr = [] for i in range(len(buckets)): # worst case: O(N*log(N)) if len(buckets[i])>1: # more then one number with the same freq. buckets[i].sort(reverse=True) for j in range(len(buckets[i])): tmp_list = [] tmp_list.append(buckets[i][j]) sorted_arr.extend(tmp_list*(i+1)) else: sorted_arr.extend(buckets[i]*(i+1)) return sorted_arr
0
0
Comments
Comments
On this page