当前位置: 首页 > news >正文

网站服务公司案例常州网络推广平台

网站服务公司案例,常州网络推广平台,wordpress忘记账号密码,中英文企业网站源码347.前K个高频元素 方法:堆 首先遍历整个数组,并使用哈希表记录每个数字出现的次数,并形成一个「出现次数数组」。找出原数组的前 k 个高频元素,就相当于找出「出现次数数组」的前 k 大的值 利用堆的思想:建立一个小…

347.前K个高频元素

image-20231014125543621

方法:堆

首先遍历整个数组,并使用哈希表记录每个数字出现的次数,并形成一个「出现次数数组」。找出原数组的前 k 个高频元素,就相当于找出「出现次数数组」的前 k 大的值

利用堆的思想:建立一个小顶堆,然后遍历出现次数数组:

  • 如果堆的元素小于k,就直接插入堆中

  • 如果堆的元素个数等于k,则检查堆顶与当前出现次数的大小,如果堆顶更大,说明至少有k个数字的出现次数比当前值大,故舍弃当前值;否则,就弹出堆顶,并将当前值插入堆中

    遍历完成后,堆中的元素就代表了出现次数数组中前k大的值

class Solution {public int[] topKFrequent(int[] nums, int k) {//使用字典,统计每个元素出现的次数,元素为键,元素出现的次数为值Map<Integer,Integer> occurrences = new HashMap<Integer,Integer>();for(int num:nums){occurrences.put(num,occurrences.getOrDefault(num,0) + 1);}//int[] 的第一个元素代表数组的值,第二个元素代表了该值出现的次数PriorityQueue<int []> queue = new PriorityQueue<int[]>(new Comparator<int[]>() {public int compare(int[] m,int[] n) {return m[1] - n[1];}});for(Map.Entry<Integer,Integer> entry : occurrences.entrySet()){int num = entry.getKey(),count = entry.getValue();if(queue.size() == k){if(queue.peek()[1] < count){queue.poll();queue.offer(new int[]{num,count});}}else{queue.offer(new int[]{num,count});}}//取出堆中的元素int[] ret = new int[k];for(int i = 0;i<k;i++){ret[i] = queue.poll()[0];}return ret;}
}
http://www.ds6.com.cn/news/100931.html

相关文章:

  • 苏州网站关键字优化电商培训机构推荐
  • 四川遂宁做网站的公司搜索引擎推广实训
  • 国外设计网址国内专业seo公司
  • 网站建设信息服务费计入什么科目市场推广外包团队
  • 自己做网站怎么让字体居中如何引流被动加好友微信
  • dw网页制作代码大全可复制seo技术培训
  • dw做网站投票2023网络营销成功案例
  • h5手机网站制作aso排名服务公司
  • 如何套用别人网站模板小程序开发平台有哪些
  • 产品展示网站含后台网站模板下载正规app推广
  • 鞍山网站建设西安seo优化培训
  • 安阳 网站建设专业推广引流团队
  • 做旅游的网站的目的和意义seo优化教程视频
  • 郑州网站设计汉狮网络网站站点
  • 长春火车站封闭了吗有没有免费的广告平台
  • 温州做网站优化专业技能培训机构
  • 不锈钢网站建设青岛网络优化费用
  • 网站风格网站seo排名优化工具
  • 建站abc网站案例com天堂网
  • 郑州易站通网站公司湖北网络推广有限公司
  • 设计网站草图360搜索首页网址是多少
  • 深圳模板建站多少钱店铺推广软文300字
  • 青岛做网站的公司排名爱站网 关键词挖掘工具站
  • 广州哪里做网站橘子seo
  • html网站模板怎么用在seo优化中
  • 东莞集团网站建设营销广告网站
  • 手机网站图标 css淄博新闻头条最新消息
  • 青岛黄岛区网站开发百度爱采购怎么推广
  • 新闻类的网站如何做优化百度竞价推广开户联系方式
  • 科技备案企业网站个人网站制作模板