Re: [閒聊] 每日LeetCode已回收
https://leetcode.com/problems/top-k-frequent-elements/description/
347. Top K Frequent Elements
給你一個陣列 nums,找出出現次數最多次的前k個元素是哪些。
Example 1:
Input: nums = [1,1,1,2,2,3], k = 2
Output: [1,2]
Example 2:
Input: nums = [1], k = 1
Output: [1]
思路
1.先用一個Map統計所有元素的出現次數。
2.把所有元素丟進一個最大堆積。
3.從最大堆積中取出k個元素就是答案了。
Java Code:
------------------------------------------
class Solution {
public int[] topKFrequent(int[] nums, int k) {
Map<Integer, Integer> map = new HashMap<>();
for (int num : nums) {
map.put(num, map.getOrDefault(num, 0) + 1);
}
PriorityQueue<Integer> queue = new PriorityQueue<>((a, b) ->
map.get(b) - map.get(a));
queue.addAll(map.keySet());
int[] res = new int[k];
for (int i = 0; i < k; i++) {
res[i] = queue.poll();
}
return res;
}
}
------------------------------------------
明天七點四十要起床 每日睡眠時間--
--
https://i.imgur.com/YPBHGGE.jpg

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.100.75.86 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1684777349.A.BEE.html
推
05/23 01:43,
2年前
, 1F
05/23 01:43, 1F
推
05/23 01:43,
2年前
, 2F
05/23 01:43, 2F
推
05/23 01:46,
2年前
, 3F
05/23 01:46, 3F
→
05/23 04:37,
2年前
, 4F
05/23 04:37, 4F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 323 之 719 篇):