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

安徽省建设造价网站杭州哪家网站建设公司好

安徽省建设造价网站,杭州哪家网站建设公司好,上海建筑信息平台,网络培训挂机软件题目 给定一个单词列表 words 和一个整数 k #xff0c;返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率#xff0c; 按字典顺序 排序。 示例 1#xff1a; 输入: words [i, love, …题目 给定一个单词列表 words 和一个整数 k 返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率 按字典顺序 排序。 示例 1 输入: words [i, love, leetcode, i, love, coding], k 2 输出: [i, love] 解析: i 和 love 为出现次数最多的两个单词均为2次。     注意按字母顺序 i 在 love 之前。 示例 2 输入: [the, day, is, sunny, the, the, the, sunny, is, is], k 4 输出: [the, is, sunny, day] 解析: the, is, sunny 和 day 是出现次数最多的四个单词     出现次数依次为 4, 3, 2 和 1 次。 注意 1 words.length 500     1 words[i] 10     words[i] 由小写英文字母组成。     k 的取值范围是 [1, 不同 words[i] 的数量] 进阶尝试以 O(n log k) 时间复杂度和 O(n) 空间复杂度解决。 思路 前k个高频元素 找大用小。 用Map扫描集合将每个单词及出现的频率存入Map中。声明一个基于最小堆的优先级队列传入比较器。题目要求默认按出现频次大小排序频次相同再按字典排序。用String默认的compareTo方法即可String默认实现了Comparable基于字母的字典序比较依次出队列找到前k个高频单词。代码 class Solution {public ListString topKFrequent(String[] words, int k) {//1.扫描原数组将每个单词及出现的次数存储在Map中MapString, Integer cnt new HashMapString, Integer();for (String word : words) {cnt.put(word, cnt.getOrDefault(word, 0) 1);}//2.扫描Map集合将前k个出现频次最高的入优先级队列最小堆//向优先级队列中传入一个比较器PriorityQueueMap.EntryString, Integer pq new PriorityQueueMap.EntryString, Integer(new ComparatorMap.EntryString, Integer() {public int compare(Map.EntryString, Integer entry1, Map.EntryString, Integer entry2) {return entry1.getValue() entry2.getValue() ? entry2.getKey().compareTo(entry1.getKey()) : entry1.getValue() - entry2.getValue();}});//将每一个字符串插入到优先队列中如果优先队列的大小超过了 k那么就将优先队列顶端元素弹出。这样最终优先队列中剩下的 k 个元素就是前 k 个出现次数最多的单词。for (Map.EntryString, Integer entry : cnt.entrySet()) {pq.offer(entry);if (pq.size() k) {pq.poll();}}//3.依次出队列找到前k个高频单词。ListString ret new ArrayListString();//取大用小每次从最小堆中堆顶取得到的前k个高频单词的频率是从小到大的while (!pq.isEmpty()) {ret.add(pq.poll().getKey());}//将ret集合进行反转这样就实现找到前k个高频单词的频率是从大到小的Collections.reverse(ret);return ret;} }
http://www.dnsts.com.cn/news/242309.html

相关文章:

  • 做二维码的网站用jsp做的网站代码
  • ftp怎么做网站的备份最有创意促销活动方案
  • 南阳网站建设与管理婚纱网站建设目的
  • 公司网站建设小知识公司网站制作投标
  • 家装网站容桂网站制作咨询
  • 登陆注册是静态网站室内设计用什么软件比较好
  • 青岛海川建设集团有限公司网站wordpress成功的网站
  • 网店推广培训seo网站编辑是做什么的
  • 毕业设计网站建设体会网站建设平台策划
  • 北海住房和城乡建设部网站广州的互联网公司
  • 唐山网站开发公司建网站的详细技术
  • wordpress代码恢复旧编辑器南京搜必应网站优化
  • 微信官方网站下载安装个体工商户备案网站备案
  • 德语网站建设wordpress 一级目录下
  • 网站开发提供源代码手机建站平台淘客
  • 做企业网站需要多久新闻今天的最新新闻
  • 如何做好网站首页WordPress下如何用页面做侧边栏
  • 网站建设优惠网站信息发布
  • 微信 免费 网站网站ipv6改造怎么做 网页代码
  • 商务网站开发与建设论文wordpress换新的电脑
  • 建设银行网站用户广告推广一个月多少钱
  • 免费个人网站怎么建立wordpress目录链接加html
  • django做网站效率高吗自助开通网站
  • 贵阳建设银行网站简洁自适应wordpress主题
  • 网站推广平台代理wordpress登入logo修改
  • 南宁彩票网站开发如何让google收录网站
  • 哪里建个人网站好东莞有哪些做网站
  • 广州网站建设公司乐云seo598手机网站导航按钮
  • 17一起广州做网站营销网站的功能
  • form e哪个网站做app官方免费下载