Grokking Data Structures & Algorithms for Coding Interviews
Ask Author
Back to course home

0% completed

Vote For New Content
Matteo Mortella
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