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

做网站和平台多少钱做网站需要代码吗

做网站和平台多少钱,做网站需要代码吗,flash网站制作软件,织梦网站修改教程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.yayakq.cn/news/814502/

相关文章:

  • 城市建设理论研究官方网站做简约头像网站
  • 求职招聘网站排名前十名古网站典模板
  • 用层还是表格做网站快wordpress邮件客户端
  • 如何实现网站开发wordpress上传音乐文件
  • 精美的商城网站介绍衡水网站建设衡水
  • 梧州网站推广外包服务公司名称注册查询官网入口
  • 想建网站wordpress 手机客户端
  • 各国网站建设排名北京游戏网站建设
  • 广州市研发网站建设怎么样提供秦皇岛网站建设价格
  • 网站建设基本功能网站专题页面用什么做
  • 电子商务网站建设与管理a卷答案蓝潮网站建设
  • 地方门户类网站有哪些自媒体平台网站开发
  • 网站全屏图片怎么做免费个人简历模板下载免费
  • 网站开发常用软件网站建设销售工作好么
  • 成都企业网站建设及公司ppt网站制作 郑州
  • 宁夏建设工程造价站网站入返晋人员登记网页怎么制作
  • 如何搜索网站的内容深圳公司网站设计公
  • 建设机械官方网站网站是新媒体平台吗
  • 网站建设服务包括什么网站描述怎么写利于seo
  • 哈尔滨app网站开发wordpress主题kratos
  • 网站开发技术职责公司网站关键词优化
  • 潍坊模板建站平台活动软文怎么写
  • 如何做网站的优化展示营销类网站
  • 响应式网站的服务wordpress使用vue
  • 电子商务网站模板免费下载久久建筑网资料全吗
  • 做网站是如何赚钱的做石材一般用哪些网站推销
  • 网站受到攻击会怎么样十大免费视频素材网
  • 如何创建网站的详细步骤个人怎么在百度上做推广
  • 公司网站建设费用明细表iis网站主目录
  • 网站扫二维码怎么做网站建设案例算命网站