题意:找出无序序列里第k大的元素
刚开始我是这样想的:选取序列第0个元素,判断有多少元素比它大、比它小、和它相等,然后缩小问题规模。
然后做完之后,leetcode出现memory limit,占用空间过大,因为这样做选取的元素不定,可能每次缩小问题规模的速度太小,导致每次递归次数多,且每步递归开空间存新的序列的空间花费过大。
后来我进行修改,不再选取序列第0个元素,而是找出序列最小和最大的元素,求其平均数,根据平均数进行判断,这样可以更快的缩小问题规模。
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
if(nums.size()==1)
return nums[0];