拓冰建站拓冰建站
首页 / 资讯中心 / 正文

二刷hot100-347.前k个高频元素

用到了小顶堆始终在堆里保持k个当前高频的元素堆口是元素中最低频的用于随时切换注意一下堆存二维数组以及map的迭代方式Map.EntryInteger,Integer entry : map.entrySet()class Solution { public int[] topKFrequent(int[] nums, int k) { MapInteger,Integer map new HashMap(); PriorityQueueint[] p new PriorityQueue((p1,p2) - p1[1] - p2[1]); for(int i 0;i nums.length;i){ map.put(nums[i],map.getOrDefault(nums[i],0) 1); } for(Map.EntryInteger,Integer entry : map.entrySet()){ if(p.size() k){ p.add(new int[]{entry.getKey(),entry.getValue()}); }else{ if(entry.getValue() p.peek()[1]){ p.poll(); p.add(new int[]{entry.getKey(),entry.getValue()}); } } } int[] res new int[k]; for(int j k - 1;j 0;j--){ res[j] p.poll()[0]; } return res; } }
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门