0
点赞
收藏
分享

微信扫一扫

LeetCode 215. 数组中的第K个最大元素

LeetCode 215. 数组中的第K个最大元素
在这里插入图片描述

快速排序

class Solution {
public:
    int quick_sort(vector<int>& q, int l, int r, int k)
    {
        if(l >= r) return q[l];

        int i = l - 1, j = r + 1, x = q[ (l + r) >> 1];
        while(i < j)
        {
            do ++ i; while(q[i] > x);
            do -- j; while(q[j] < x);
            if(i < j)   swap(q[i], q[j]);
        }
        //比较i和j均可,只是边界问题,看个人习惯
        if(k <= j) return quick_sort(q, l, j, k);
        else   return quick_sort(q, j + 1, r, k);
    }
    int findKthLargest(vector<int>& nums, int k) {
        return quick_sort(nums, 0, nums.size() - 1,  k - 1);
    }
};
举报

相关推荐

0 条评论