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

LeetCode刷题---哈希表---215

数组中第k个最大元素

215. 数组中的第K个最大元素 - 力扣(LeetCode)

题目:

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例 1:

输入: [3,2,1,5,6,4], k = 2
输出: 5

示例 2:

输入: [3,2,3,1,2,4,5,5,6], k = 4
输出: 4

提示:

  • 1 <= k <= nums.length <= 105
  • -104 <= nums[i] <= 104

自己的思路和代码:

思路:

        我们可以声明一个map,第一维是数组出现的元素,第二维是数组出现元素的次数,因为map可以自己进行排序。所以我们只需要再次遍历这个map就可以找到我们所需要的元素了。

代码:
class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        map<int, int> mymap;

        for(int i=0; i<nums.size(); i++) {
            mymap[nums[i]]++;
        }

        int score = 0;
        for(auto itr=mymap.rbegin(); itr!=mymap.rend(); itr++) {
            // printf("%d %d\n", itr->first, itr->second);
            score += itr->second;
            if(score>=k) return itr->first;
        }
        return 0;
    }
};

相关文章:

  • Jedis 客户端 用于java连接redis服务
  • Vue3 打造 Windows 桌面个性高效组件工具
  • git clone
  • Java运算符
  • 【原创】Ubuntu 22安装nexus私服
  • LeetCode刷题---哈希表---451
  • Kubernetes Pod健康检查全解析:从Liveness到滚动更新,掌握容器健康管理的核心技巧
  • DeepSeek是什么?两种模型的对比?
  • 系统设计之分布式
  • C++编程语言:抽象机制:模板和层级结构(Bjarne Stroustrup)
  • 宏块划分的原理
  • LeetCode1299
  • 自动创建spring boot应用(eclipse版本)
  • DeepSeek 入门指南
  • 【解决方法】vite-plugin-svg-icons使用中出现问题[vite] Cannot find package ‘fast-glob‘
  • 网络爬虫学习:借助DeepSeek完善爬虫软件,实现模拟鼠标右键点击,将链接另存为本地文件
  • BiRefNet C++ TensorRT (二分类图像分割)
  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 1
  • [原创](Modern C++)现代C++的关键性概念: 妙用std::reference_wrapper, 让std::list容器具有随机访问功能.
  • Zookeeper(54)如何使用Zookeeper的命令行工具?
  • 济南市委副秘书长吕英伟已任历下区领导
  • 张笑宇:物质极大丰富之后,我们该怎么办?
  • 普京:俄中关系是国家间关系的真正典范
  • 《三餐四季》广东篇今晚开播:食在岭南,遇见百味
  • 重庆荣昌出圈背后:把网络流量变成经济发展的增量
  • 外交部发言人就印巴局势升级答记者问