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

<692> 前K个高频单词

给定一个单词列表 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 次。

解答

class Solution {
public:
    vector<string> topKFrequent(vector<string>& words, int k) {
        // 统计次数——默认按string排序
        map<string, int> countMap;
        for(auto& str : words)
        {
            countMap[str]++;
        }

        // 加greater<int>改成降序,用iterator先取次数高的
        multimap<int, string, greater<int>> sortMap;
        for(auto& kv : countMap)
        {
            sortMap.insert(make_pair(kv.second, kv.first));
        }

        vector<string> v;
        multimap<int, string, greater<int>>::iterator it = sortMap.begin();
        for(size_t i = 0; i < k; i++)
        {
            v.push_back(it->second);
            ++it;
        }

        return v;
    }
};

http://www.dtcms.com/a/31669.html

相关文章:

  • Windows、Mac、Linux,到底该怎么选?
  • 20250220-代码笔记01-class CVRPEnv
  • 画册封面设计有哪些要点呢?
  • 计算机单位之详解——存储单位Byte 网络传输单位bps 视频码率单位bps
  • 关于ES中text类型时间字段范围查询的结构化解决方案
  • 基于 DeepSeek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
  • IC版图设计之DXF文件格式详解
  • 使用ezuikit-js封装一个对接摄像头的组件
  • node和vue的主流版本组合版本介绍
  • DeepSeek与AI幻觉
  • [寻找密码]
  • 游戏引擎学习第116天
  • Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
  • python字符串列表
  • ROS2学习
  • 25工程管理研究生复试面试问题汇总 工程管理专业知识问题很全! 工程管理复试全流程攻略 工程管理考研复试真题汇总
  • 深度学习图像预处理可视化:拆解Compose操作的全过程
  • Java并发编程面试题:ThreadLocal(8题)
  • VIM FZF 安裝和使用
  • ClickHouse系列之ClickHouse安装
  • 8. MySQL 索引的创建与涉及原则(详解说明)
  • JavaScript函数-函数的使用
  • Ubuntu服务器 /data 盘需要手动挂载的解决方案
  • WPS PPT插入各种线型形状(如画直线)的时候总是有箭头,如何还原成只画直线
  • CSS垂直居中终极方案:告别复杂计算,拥抱现代布局
  • RocksDB Bloom Filter 如何避免假阳性问题探索
  • Ubuntu 22.04安装K8S集群
  • MySQL的Union和OR查询
  • 音乐创作新纪元:AI音乐网站的革命性力量
  • 大屏开源项目go-view二次开发1----环境搭建(C#)