Leetcode:215. Kth Largest Element in an Array

来源:互联网 发布:知乎电影1942精彩片段 编辑:程序博客网 时间:2024/06/06 05:11

这里写图片描述

题意:即相当于第n - k +1大的数!

下面放出代码:

class Solution {public:    int findKthLargest(vector<int>& nums, int k) {        int L = 0, R = nums.size() - 1;        while (L < R) {            int left = L, right = R;            int key = nums[left];            while (left < right) {                while (left < right && nums[right] < key) --right;                nums[left] = nums[right];                while (left < right && nums[left] >= key) ++left;                nums[right] = nums[left];            }            nums[left] = key;            if (left == k - 1) return nums[k - 1];            else if (left > k - 1) R = left - 1;            else L = left + 1;        }        return nums[k - 1];    }};

算法:
仿照找第k大的数采用分治算法即可!

原创粉丝点击