Re: [閒聊] 每日LeetCode已回收

看板Marginalman作者 (みけねこ的鼻屎)時間2年前 (2023/05/23 01:42), 編輯推噓3(301)
留言4則, 4人參與, 2年前最新討論串323/719 (看更多)
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
文章代碼(AID): #1aQwc5lk (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1aQwc5lk (Marginalman)