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

吉林市建设委员会网站国际新闻头条最新消息

吉林市建设委员会网站,国际新闻头条最新消息,企业网站系统设计与实现,58同城上海网站建设优先队列优先队列(priority queue)是计算机科学中的一类抽象数据类型。优先队列中的每个元素都有各自的优先级,优先级最高的元素最先得到服务;优先级相同的元素按照其在优先队列中的顺序得到服务。优先队列通常使用“堆”&#xf…

优先队列

优先队列priority queue)是计算机科学中的一类抽象数据类型。优先队列中的每个元素都有各自的优先级,优先级最高的元素最先得到服务;优先级相同的元素按照其在优先队列中的顺序得到服务。优先队列通常使用“堆”(heap)实现。

优先队列至少需要支持下述操作:

  • 插入带优先级的元素(insert_with_priority)

  • 取出具有最高优先级的元素(pull_highest_priority_element)

  • 查看最高优先级的元素(peek):O(1) 时间复杂度

其它可选的操作:

  • 检查优先级高的一批元素

  • 清空优先队列

  • 批插入一批元素

  • 合并多个优先队列

  • 调整一个元素的优先级

怎样理解优先队列?

举个例子。一家诊所,只有一个医生为病人看病。每个病人依据他们的病情,都会有一个看病的优先级。抽象出一个队列,当病人进入队列时,代表需要等待医生空闲;出队列时,病人接受治疗。一个病人患了感冒,优先级较低,让他在队列中等待,待医生空闲时再为他治疗;接下来,另一位病人前来看病,这位病人伤得不轻,病人头上插着斧头正血流不止,优先级较高,会让他先出队列进行治疗。

在java中的优先队列是一个最小堆,我们可以通过comparator将其变成最大堆

例题

Top K Frequent Elements

Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order.

Example 1:

Input: nums = [1,1,1,2,2,3], k = 2

Output: [1,2]

Example 2:

Input: nums = [1], k = 1

Output: [1]

Constraints:

1 <= nums.length <= 105

-104 <= nums[i] <= 104

k is in the range [1, the number of unique elements in the array].

It is guaranteed that the answer is unique.

Follow up: Your algorithm's time complexity must be better than O(n log n), where n is the array's size.

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/top-k-frequent-elements

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {public int[] topKFrequent(int[] nums, int k) {//key:num   value:frequencyHashMap<Integer,Integer> map = new HashMap<>();//int[0]:num    int[1]:frequencyPriorityQueue<int[]> pq = new PriorityQueue<>(new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {return o2[1] - o1[1];}});//iterate through nums and insert k-v into mapfor(int num : nums) {map.put(num,map.getOrDefault(num,0) + 1);}for (Map.Entry<Integer, Integer> entry : map.entrySet()) {Integer key = entry.getKey();Integer value = entry.getValue();pq.add(new int[]{key,value});}int[] ans = new int[k];for (int i = 0;i < k;i++) {ans[i] = pq.poll()[0];}return ans;}
}

http://www.hrbkazy.com/news/34963.html

相关文章:

  • 阿里云服务器做电影网站吗郑州seo顾问热狗hotdoger
  • 做字幕模板下载网站软文时光发稿平台
  • html布局模板广东搜索引擎优化
  • 做网站 嵌入支付查询网站域名
  • 安防公司做网站图片广告投放方式
  • 哪个网站可以做兼职ppt模板淘宝关键词top排行榜
  • 惠州做网站首选惠州邦肇庆网站推广排名
  • asp.net mvc网站开发在线网站流量查询
  • 中小企业网站建设如何seo推荐
  • 福建建站公司网络营销的内容有哪些方面
  • 宁波网站建设建站怎么做短视频新媒体推广
  • 成都网站asp access源码购买修改抚顺网站seo
  • 南宁哪个公司做网站建设广州关键词优化外包
  • 深圳装修公司口碑排行漯河seo公司
  • 高端大气的网站深圳网站设计专家乐云seo
  • win8平板做网站服务器网络广告的计费方式
  • 南京做网站建设的公司成都网站建设方案优化
  • 贵金属企业网站源码关键词列表
  • 工作室项目推荐搜索引擎优化的分类
  • 菜谱网站 源码拼多多网店代运营要多少费用
  • 中创高科官方网站百度广告平台电话
  • 广东个人备案网站内容2023年12月疫情又开始了吗
  • 为什么有的公司做很多个网站sem专员
  • 百度优化推广快速排序优化
  • 增加网站备案推广代理平台登录
  • 社区类网站有哪些页面优化算法
  • 找工程包工平台seo裤子的关键词首页排名有哪些
  • 给金融公司群做网站合法吗阳江seo
  • 安康免费做网站头条新闻 最新消息条
  • 赤峰网站建设企业查询平台