当前位置:网站首页>力扣(LeetCode)215. 数组中的第K个最大元素(2022.08.03)
力扣(LeetCode)215. 数组中的第K个最大元素(2022.08.03)
2022-08-04 03:02:00 【ChaoYue_miku】
给定整数数组 nums 和整数 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
提示:
1 <= k <= nums.length <= 105
-104 <= nums[i] <= 104
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/kth-largest-element-in-an-array
方法一:快速排序
C++提交内容:
class Solution {
public:
int quickSelect(vector<int>& a, int l, int r, int index) {
int q = randomPartition(a, l, r);
if (q == index) {
return a[q];
} else {
return q < index ? quickSelect(a, q + 1, r, index) : quickSelect(a, l, q - 1, index);
}
}
inline int randomPartition(vector<int>& a, int l, int r) {
int i = rand() % (r - l + 1) + l;
swap(a[i], a[r]);
return partition(a, l, r);
}
inline int partition(vector<int>& a, int l, int r) {
int x = a[r], i = l - 1;
for (int j = l; j < r; ++j) {
if (a[j] <= x) {
swap(a[++i], a[j]);
}
}
swap(a[i + 1], a[r]);
return i + 1;
}
int findKthLargest(vector<int>& nums, int k) {
srand(time(0));
return quickSelect(nums, 0, nums.size() - 1, nums.size() - k);
}
};
边栏推荐
- 【翻译】Terraform和Kubernetes的交集
- 说说数据治理中常见的20个问题
- 返回字符串中的最大回文数
- 云开发旅游打卡广场微信小程序源码(含视频教程)
- 【Playwright测试教程】5分钟上手
- [Playwright Test Tutorial] 5 minutes to get started
- 三分建设,七分管理!产品、系统、组织三管齐下节能降耗
- QNX Hypervisor] 10.2 vdev 8259 2.2 user manual
- 在更一般意义上验算移位距离和假设
- Ant - the design of the Select component using a custom icon (suffixIcon attribute) suffixes, click on the custom ICONS have no reaction, will not display the drop-down menu
猜你喜欢
随机推荐
小程序:扫码打开参数解析
如何读取 resources 目录下的文件路径?
MySQL高级-读写分离-分库分表
怎样提高网络数据安全性
Zabbix设置邮件告警+企业微信告警
单片机C语言->的用法,和意思
[QNX Hypervisor 2.2用户手册]10.3 vdev gic
sqoop ETL tool
Homemade bluetooth mobile app to control stm8/stm32/C51 onboard LED
MCU C language -> usage, and meaning
ssh服务详解
复制带随机指针的链表
云开发校园微社区微信小程序源码/二手交易/兼职交友微信小程序开源源码
docker+网桥+redis主从+哨兵模式
Small Turtle Compilation Notes
C program compilation and predefined detailed explanation
Simple record of Flink principle flow chart
云开发旅游打卡广场微信小程序源码(含视频教程)
What is the source of flinkcdc consuming mysql binlog data without sqltype=delete
瑞能微计量芯片RN2026的实用程序