WEEK#11 Divide and Conquer_Kth Largest number

The code is pretty self-explained enough...
When it comes to the Kth smallest:


algorithm2.png

algorithm.png

Note that the choosing of the pivot value is up to the programmer

class Solution {
public:
    bool flag = false;

    int findKthLargest(vector<int>& nums, int k) {
        if (flag == false) {
            k -= 1;
            flag = true;
        }
        int pivot, pivotindex;
        vector<int> larger, equal, smaller;
        pivotindex = nums.size()/2; // generate a random number between 0 ~ num.size()
        pivot = nums[pivotindex];
        for (auto i : nums) {
            if (i < pivot) {
                smaller.push_back(i);
            }
            else if (i == pivot) {
                equal.push_back(i);
            }
            else if (i > pivot) {
                larger.push_back(i);
            }
        }
        if (k < larger.size())
            return findKthLargest(larger, k);
        else if (k >= larger.size() && k < larger.size() + equal.size()) {
            return pivot;
            flag = false;
        }
        else if (k >= larger.size() + equal.size())
            return findKthLargest(smaller, k-larger.size()-equal.size());
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 13,394评论 0 23
  • 一開始我是想到,小時候,我們總是追求100分,因為那是滿分,或許可以得到獎賞,也或許可以得到讚美。產品,我們也希望...
    桃園王永興阅读 4,079评论 1 4
  • 一、 准备工作 必须有一个苹果ID账号和密码 一台MAC电脑也是必有的 当然电脑上得安装了Xcode软件 二、 创...
    老韩在简书阅读 4,761评论 0 2
  • 今天的故事,希望大家可以当成一篇科幻小说来看。 股票天天跌成狗,国家大手笔的救市,每天砸进去很多钱,然而该跌的还是...
    2B青年厘米阅读 2,720评论 0 1
  • 上级通知,组织100人去图书馆观看红色主题展。又是组织人,又是这么多,她忍不住在心里骂了娘。 她是做思想宣传工作的...
    迷糊猪太阅读 1,085评论 0 1