1677个高频单词_3500高频词汇表

1677个高频单词_3500高频词汇表给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。 注意,按字母顺序 “i” 在 “love” 之前。 示例 2:输入: [“the”, “day”, “is


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给一非空的单词列表,返回前 k 个出现次数最多的单词。

返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。

示例 1:

输入: ["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 次。
 

注意:

假定 k 总为有效值, 1 ≤ k ≤ 集合元素数。
输入的单词均由小写字母组成。

扩展练习:

尝试以 O(n log k) 时间复杂度和 O(n) 空间复杂度解决。


class Solution { 
   
public:
struct  Node{ 
   
    string s;
    int val;
    Node(string s,int v){ 
   
        this->s = s,val = v;
    }
    bool operator>(const Node &b)const{ 
   
        if(val == b.val)return s < b.s;
        return val > b.val;
    }
};
    vector<string> topKFrequent(vector<string>& words, int k) { 
   
        unordered_map<string,int>m;
        for(auto &a : words){ 
   
            if(!m.count(a))m[a] = 0;
            m[a] ++;
        }
        priority_queue<Node,vector<Node>,greater<Node> >p;
        unordered_map<string,int>::iterator it;
        for(it = m.begin();it != m.end();it ++){ 
   
            Node a(it->first,it->second);
            if(p.size() == k){ 
   
                if(a > p.top()){ 
   
                    p.pop();
                    p.push(a);
                }
            }
            else p.push(a);
        }
        vector<string>ans;
        while(p.size()){ 
   
            ans.push_back(p.top().s);
            p.pop();
        }
        reverse(ans.begin(),ans.end());
        return ans;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169070.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 请简述Map-Reduce算法的原理(通俗易什么成语)

    下面是我自己的微信公众号(不定期更新JAVA、大数据、个人成长等干货)1、公众号上有经典的技术电子书可以免费领2、大家有问题可以在公众号问我,只要你问了我就会回复(相互交流)也可以扫描下面二维码,加我个人微信,和我直接沟通Hadoop简介Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及…

    2022年4月13日
  • Lisp语言简介_c++是什么语言

    Lisp语言简介_c++是什么语言摘自维基百科,原链接为:http://zh.wikipedia.org/zh/LISP因为Clojure是Lisp的一种的方言,所以我们可以先来了解一下Lisp这个比较小众的编程到底是什么~—–

    2022年8月3日
  • 在ubuntu中pycharm2021.12.13最新激活码-激活码分享

    (在ubuntu中pycharm2021.12.13最新激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~41MD9IQHZL-eyJsaWNlbnNlSWQiOi…

    2022年3月30日
  • centos mysql 1045 错误

    centos mysql 1045 错误1、停用MySQL服务:#/etc/rc.d/init.d/mysqldstop2、输入命令:#mysqld_safe–user=mysql–skip-grant-tables–skip-networking&3、登入数据库:#mysql-urootmysql4、mysql>usemysql; 结果如下:  Databasecha

    2022年5月10日
  • flowable入门

    flowable入门在使用flowable框架的时候,首先需要引入flowable的jar包,flowablemaven仓库地址为:  org.flowable  flowable-engine  6.0.0.RC1新建flowable.cfg.xml文件,如下图所示:flowable.cfg.xml文件内容如下所示:

    2022年5月21日
  • js中的延迟执行和定时执行

    在js中,延迟执行函数有两种,setTimeout和setInterval,用法如下:function testFunction(){Console.log('hovertree.

    2021年12月25日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号