题解 | #寻找第K大#

寻找第K大

http://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf

快速排序法
注意第K大实际上是排序后的第K-1位 晕死
class Solution {
public:
    int partition(vector<int> &a, int left, int right){
        int first = a[left];
        while(left < right){
            while(left < right && first >= a[right]){
                right --;
            }
            if(first < a[right]){
                a[left++] = a[right];
            }
            while(left <right && a[left] >= first){
                left ++;
            }
            if(a[left] < first){
                a[right--] = a[left];
            }
        }
        a[left] = first;
        return left;
    }
    int quickSort(vector<int> &a, int left, int right, int K){
        int pos = partition(a, left, right);
        if(pos == K-1) return a[K-1];
        else if(pos < K-1){
            return quickSort(a, pos+1, right, K);
        }else{
            return quickSort(a, left, pos-1, K);
        }
    }
    int findKth(vector<int> a, int n, int K) {
        int res = quickSort(a, 0, n-1, K);
        return res;
    }
};


全部评论

相关推荐

09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
10-29 22:30
吉林大学 Java
同专业学长学姐,去互联网大厂的起薪&nbsp;15k+,去国企&nbsp;IT&nbsp;岗的也有&nbsp;12k+,就连去中小厂的都基本&nbsp;13k&nbsp;起步😤&nbsp;我投的传统行业技术岗,拼死拼活拿到&nbsp;1Woffer,本来还挺开心,结果逛了圈牛客直接破防,同是校招生,行业差距怎么就这么大啊!
喵喵喵6_6:应该哪里不对吧,大厂都是20k以上的,10k那种对于985本的学生基本就是点击一下过了笔试就送的,我前两天刚拿了一个11k,笔试完第2天就打电话了,非科班。坏消息是c++岗开这么低真是刷新认知了
校招生月薪1W算什么水平
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务