程式語言 - LeetCode - C++ - 215. Kth Largest Element in an Array



參考資訊:
https://algo.monster/liteproblems/215

題目:


解答:

class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        return quick_sort(nums, 0, nums.size() - 1, nums.size() - k);
    }

    int quick_sort(vector<int>& nums, int left, int right, int k) {
        if (left == right) {
            return nums[left];
        }

        int l = left - 1;
        int r = right + 1;
        int pivot = nums[(left + right) >> 1];

        while (l < r) {
            while (nums[++l] < pivot);
            while (nums[--r] > pivot);

            if (l < r) {
                swap(nums[l], nums[r]);
            }
        }

        if (r < k) {
            return quick_sort(nums, r + 1, right, k);
        }
        return quick_sort(nums, left, r, k);
    }
};