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

示例 1:

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

示例 2:

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

说明:

你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。

class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        int left = 0, right = nums.size() - 1;
        while (true) 
        {
            int pos = partition(nums, left, right);
            if (pos == k - 1) 
                return nums[pos];
            else if (pos > k - 1) 
                right = pos - 1;
            else 
                left = pos + 1;
        }
    }
    int partition(vector<int>& nums, int left, int right) 
    {
        int pivot = nums[left], l = left + 1, r = right;
        while (l <= r) 
        {
            if (nums[l] < pivot && nums[r] > pivot) {
                
                swap(nums[l++], nums[r--]);
            }
            if (nums[l] >= pivot) 
                ++l;
            if (nums[r] <= pivot) 
                --r;
        }
        swap(nums[left], nums[r]);
        return r;
    }
};

215.数组中的第K个最大元素相关推荐

  1. 【LeetCode】【HOT】215. 数组中的第K个最大元素(优先队列)

    [LeetCode][HOT]215. 数组中的第K个最大元素 文章目录 [LeetCode][HOT]215. 数组中的第K个最大元素 package hot;import java.util.Co ...

  2. 215. 数组中的第 K个最大元素

    215. 数组中的第 K个最大元素 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数 组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5 ...

  3. ⭐算法入门⭐《哈希表》中等05 —— LeetCode 215. 数组中的第K个最大元素

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给定整数数组nums和 ...

  4. 力扣(LeetCode)215. 数组中的第K个最大元素(C语言)

    一.环境说明 本文是 LeetCode 215题 : 数组中的第K个最大元素,使用c语言实现. 快速选择.查找无序数组的利器! 测试环境:Visual Studio 2019. 二.代码展示 void ...

  5. 215.数组中的第K个最大元素/347. 前 K 个高频元素

    2020-05-25 1.题目描述 数组中的第K个最大元素 2.题解 1.使用冒泡排序 2.使用快速排序 3.优先队列(内部是用堆来实现的) 3.代码 class Solution { public: ...

  6. vector删除第i个元素_[LeetCode] 215. 数组中的第K个最大元素

    题目链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/) 题目描述: 在未排序的数组中找到第 k 个最大的元素.请 ...

  7. 215. 数组中的第K个最大元素 BFPRT最牛解法

    在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 ...

  8. LeetCode 215. 数组中的第K个最大元素(快速排序)

    1. 题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 ...

  9. LeetCode 215 数组中的第K个最大元素

    题目描述 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大 的元素,而不是第 k 个不同的元素. 题解 快速排序 代码 class Solution { pub ...

  10. leetcode 215.数组中的第K个最大元素

    难度:中等 频率:250 ** 题目:给定整数数组nums和整数k,清返回数组中第K个最大的元素. 清注意你要找的是数组排序后的第K个最大的元素,而不是第K个不同的元素. ** ** 题目类型: 经典 ...

最新文章

  1. python中的列表操作
  2. LR+Jenkins实践思路
  3. Linux之父为过去的言行道歉,宣布离开社区反思
  4. java 时间api源码,时间API(示例代码)
  5. 剑指Offer(Java实现)把二叉树打印成多行
  6. js中继承的几种用法总结(apply,call,prototype)
  7. HTML表单input类型有哪些,HTML表单之input元素的23种type类型
  8. 关于C++中的条件编译
  9. 【云上创新】阿里云视频云分享全场景音视频服务背后的场景探索与技术实践
  10. SQL中的树型编号处理
  11. 【解读】Http协议
  12. python面向对象(其二)
  13. 想活得开心,请放下这7样:烦恼、自卑、懒惰、消极、抱怨、犹豫、狭隘
  14. 【钉钉发送消息 上传文本 群主发送工具类】
  15. 杨贵妃深受日本人喜爱 供奉为“热田大明神”
  16. Tomcat启动时报错:A child container failed during start解决方案-clean
  17. 基于PL/SQL的数据库备份方法
  18. html内容整体放大缩小,html元素放大缩小的示例-javaScript示例
  19. Java等额本息年化利率,转等本等息月利率
  20. 操作系统解决吸烟者问题

热门文章

  1. java日期多次使用修改,数据有问题
  2. 使用ASP.NET Atlas ItemView控件显示集合中的单个数据
  3. 过滤内网IP—IPv4
  4. lucene查询索引之Query子类查询——(七)
  5. Salesforce:下个财年营收我们有望突破100亿美元
  6. DotNET企业架构应用实践-数据库表记录的唯一性设计的设计兼议主键设定原则
  7. Oracle中记录被锁解锁方法
  8. mysql dump 到的文件_MySQL用mysqldump命令导出文本文件
  9. Hibernate 基本类型
  10. 信号怎么用matlab分类,使用迁移学习做信号分类