Skip to content

Commit ee04083

Browse files
committed
Top K Frequent Elements: AC by bucket sort
1 parent f0fa018 commit ee04083

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

LeetCodePrj/Java/leetcode/medium/page4/MediumPage4.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ public class MediumPage4 {
66
@Test
77
public void testTopKFrequentElements(){
88
TopKFrequentElements topKFrequentElements = new TopKFrequentElements();
9-
System.out.println(topKFrequentElements.topKFrequent(new int[]{1,2}, 2));
9+
System.out.println(topKFrequentElements.topKFrequent(new int[]{-1,-1}, 1));
1010
}
1111
}

LeetCodePrj/Java/leetcode/medium/page4/TopKFrequentElements.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public List<Integer> topKFrequent(int[] nums, int k) {
2626

2727
private List<Integer> bucketSort(Map<Integer, Integer> frequency) {
2828
// get max num
29-
int maxNum = 0;
29+
int maxNum = Integer.MIN_VALUE;
3030
for (HashMap.Entry<Integer, Integer> entry : frequency.entrySet()) {
3131
if (entry.getValue() > maxNum) {
3232
maxNum = entry.getValue();
@@ -45,9 +45,11 @@ private List<Integer> bucketSort(Map<Integer, Integer> frequency) {
4545
}
4646

4747
// sort
48-
List<Integer> sortedFrequency = new ArrayList<>(maxNum + 1);
48+
List<Integer> sortedFrequency = new ArrayList<>();
4949
for (int i = maxNum; i > 0; i--) {
50-
sortedFrequency.addAll(bucket[i]);
50+
if (bucket[i] != null) {
51+
sortedFrequency.addAll(bucket[i]);
52+
}
5153
}
5254

5355
return sortedFrequency;

0 commit comments

Comments
 (0)