第k大元素
来源:互联网 发布:人工智能计算器3.8.1版 编辑:程序博客网 时间:2024/04/27 14:04
问题描述
http://www.lintcode.com/zh-cn/problem/kth-largest-element/
在数组中找到第k大的元素
样例
给出数组 [9,3,2,4,8],第三大的元素是 4
给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推
笔记
使用快排的partition函数
代码
class Solution {public: /* * param k : description of k * param nums : description of array and index 0 ~ n-1 * return: description of return */ int kthLargestElement(int k, vector<int> nums) { // write your code here int start = 0; int end = nums.size() - 1; while (start < end) { int p = partition(nums, start, end); if (p == k - 1) { return nums[p]; } else if (p > k - 1) end = p - 1; else start = p + 1; } return nums[start]; } int partition(vector<int> &nums, int start, int end) { int lo = start; int hi = start; while (hi < end) { if (nums[hi] > nums[end]) swap(nums[hi++], nums[lo++]); else hi++; } swap(nums[end], nums[lo]); return lo; }};
进一步参考
分布式集群中大数据的中位数
0 0
- 第k大元素
- 第k大元素
- 第k大元素
- LintCode 第K大元素
- LintCode-第k大元素
- LintCode_第k大元素
- 【LintCode】第k大元素
- 查找第K大元素
- 第k大的元素
- 快排应用-第k大元素
- 查找数组中第K大元素
- 查找--第K大的元素
- 线性时间查找第k大元素
- 查找第K大的元素
- 数组中的第K大元素
- 数组中第K大元素
- 查找第 k 大的元素
- 数组中第K大的元素
- 事件委托、函数节流及防抖
- EasyUI ComboGrid(数据表格下拉框)
- 快速搭建SDN开发环境:ONOS开发环境
- 使用Android studio解决方法数超过65535的瓶颈
- A*(自动寻路)
- 第k大元素
- js实现A*寻路算法
- A*代码(JS版)
- Java反射第一课认识Class类
- Impala 教程
- LintCode字符串题总结
- iOS取小数精度
- Windows进程间通信的各种方法
- vijos1060 盒子(重庆一中高2018级信息学竞赛测验7) 解题报告