215.数组中的第K个最大元素
在未排序的数组中找到第 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个最大元素相关推荐
- 【LeetCode】【HOT】215. 数组中的第K个最大元素(优先队列)
[LeetCode][HOT]215. 数组中的第K个最大元素 文章目录 [LeetCode][HOT]215. 数组中的第K个最大元素 package hot;import java.util.Co ...
- 215. 数组中的第 K个最大元素
215. 数组中的第 K个最大元素 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数 组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5 ...
- ⭐算法入门⭐《哈希表》中等05 —— LeetCode 215. 数组中的第K个最大元素
文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述 给定整数数组nums和 ...
- 力扣(LeetCode)215. 数组中的第K个最大元素(C语言)
一.环境说明 本文是 LeetCode 215题 : 数组中的第K个最大元素,使用c语言实现. 快速选择.查找无序数组的利器! 测试环境:Visual Studio 2019. 二.代码展示 void ...
- 215.数组中的第K个最大元素/347. 前 K 个高频元素
2020-05-25 1.题目描述 数组中的第K个最大元素 2.题解 1.使用冒泡排序 2.使用快速排序 3.优先队列(内部是用堆来实现的) 3.代码 class Solution { public: ...
- vector删除第i个元素_[LeetCode] 215. 数组中的第K个最大元素
题目链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/) 题目描述: 在未排序的数组中找到第 k 个最大的元素.请 ...
- 215. 数组中的第K个最大元素 BFPRT最牛解法
在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 ...
- LeetCode 215. 数组中的第K个最大元素(快速排序)
1. 题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 ...
- LeetCode 215 数组中的第K个最大元素
题目描述 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大 的元素,而不是第 k 个不同的元素. 题解 快速排序 代码 class Solution { pub ...
- leetcode 215.数组中的第K个最大元素
难度:中等 频率:250 ** 题目:给定整数数组nums和整数k,清返回数组中第K个最大的元素. 清注意你要找的是数组排序后的第K个最大的元素,而不是第K个不同的元素. ** ** 题目类型: 经典 ...
最新文章
- python中的列表操作
- LR+Jenkins实践思路
- Linux之父为过去的言行道歉,宣布离开社区反思
- java 时间api源码,时间API(示例代码)
- 剑指Offer(Java实现)把二叉树打印成多行
- js中继承的几种用法总结(apply,call,prototype)
- HTML表单input类型有哪些,HTML表单之input元素的23种type类型
- 关于C++中的条件编译
- 【云上创新】阿里云视频云分享全场景音视频服务背后的场景探索与技术实践
- SQL中的树型编号处理
- 【解读】Http协议
- python面向对象(其二)
- 想活得开心,请放下这7样:烦恼、自卑、懒惰、消极、抱怨、犹豫、狭隘
- 【钉钉发送消息 上传文本 群主发送工具类】
- 杨贵妃深受日本人喜爱 供奉为“热田大明神”
- Tomcat启动时报错:A child container failed during start解决方案-clean
- 基于PL/SQL的数据库备份方法
- html内容整体放大缩小,html元素放大缩小的示例-javaScript示例
- Java等额本息年化利率,转等本等息月利率
- 操作系统解决吸烟者问题