Mizuhara_Chizuru

Untitled

May 13th, 2023
943
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.14 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. class Solution {
  4.     public int[] topKFrequent(int[] nums, int k) {
  5.         // Count frequency of each element
  6.         Map<Integer, Integer> freq = new HashMap<>();
  7.         for (int num : nums) {
  8.             freq.put(num, freq.getOrDefault(num, 0) + 1);
  9.         }
  10.        
  11.         // Create a list of frequency buckets
  12.         List<Integer>[] buckets = new ArrayList[nums.length + 1];
  13.         for (int num : freq.keySet()) {
  14.             int count = freq.get(num);
  15.             if (buckets[count] == null) {
  16.                 buckets[count] = new ArrayList<>();
  17.             }
  18.             buckets[count].add(num);
  19.         }
  20.        
  21.         // Extract top k elements from frequency buckets
  22.         int[] result = new int[k];
  23.         int index = 0;
  24.         for (int i = buckets.length - 1; i >= 0 && index < k; i--) {
  25.             if (buckets[i] != null) {
  26.                 for (int num : buckets[i]) {
  27.                     result[index++] = num;
  28.                     if (index == k) {
  29.                         break;
  30.                     }
  31.                 }
  32.             }
  33.         }
  34.        
  35.         return result;
  36.     }
  37. }
  38.  
Advertisement
Add Comment
Please, Sign In to add comment