LeetCode 215. Kth Largest Element in an Array
来源:互联网 发布:完美刷机解网络锁 编辑:程序博客网 时间:2024/06/06 09:09
Description
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.
For example,
Given[3,2,1,5,6,4]
and k = 2, return 5.
Note:
You may assume k is always valid, 1 ≤ k ≤ array’s length.
Solution
将数组排序,然后直接通过索引返回第k大的数字
int findKthLargest(vector<int>& nums, int k){ sort(nums.begin(), nums.end()); reverse(nums.begin(), nums.end()); return nums[k-1];}
利用分治思想写出快速选择算法耶鲁大学:QuickSelect算法
#include <iostream>#include <vector>using namespace std;int findKthLargest(vector<int>& nums, int k){ vector<int> left; vector<int> right; int pivot = nums[0]; for(int i = 1; i < nums.size(); i++){ if(nums[i] <= pivot) left.push_back(nums[i]); else right.push_back((nums[i])); } if(k <= right.size()) return findKthLargest(right, k); else if(k-1 == right.size()) return pivot; else return findKthLargest(left, k-right.size()-1);}int main(){ int ary[10] = {3, 2, 1, 5, 6, 4}; vector<int> vec(ary, ary+6); cout<<findKthLargest(vec, 2);}
快速选择算法在LeetCode平台上会出现内存超限(Memory Limit Exceeded)的问题,这与C++中内存的管理模式有关:vector内存空间只会增长,不会减小。
0 0
- Leetcode Kth Largest Element in an Array
- Leetcode: Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- [LeetCode] Kth Largest Element in an Array
- [leetcode] Kth Largest Element in an Array
- leetcode--Kth Largest Element in an Array
- #leetcode#Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- 【Leetcode】Kth Largest Element in an Array
- Leetcode: Kth Largest Element in an Array
- Kth Largest Element in an Array -- leetcode
- [Leetcode]Kth Largest Element in an Array
- [LeetCode]Kth Largest Element in an Array
- *LeetCode-Kth Largest Element in an Array
- LeetCode----Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- leetcode-Kth Largest Element in an Array
- LeetCode -- Kth Largest Element in an Array
- oracle 语法start with
- SQL教程重温(7)
- 开始使用Material Design
- 正则表达式的简单应用
- Device Compatibility
- LeetCode 215. Kth Largest Element in an Array
- sdram
- H5视频播放器中的一些总结
- 十一,ES6新添的一种数据类型Symbol
- Python实现一个二叉树类
- 云笔记收藏笔记
- TensorFlow学习笔记(一)---MNIST
- review
- 武力戡乱博客目录总表