leetcode 215 Kth Largest Element in an Array C++

来源:互联网 发布:mac壁纸怎么设置 编辑:程序博客网 时间:2024/06/11 21:15

帮别人找bug,顺便把这道题做了,用的是快排的方式。

     int findKLargestElement(int k, vector<int>& nums, int low, int high) {        int left = low;        int right = high;        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 findKLargestElement(k, nums, left+1, high);        }        else if (left > (k-1)) {            return findKLargestElement(k, nums, low, left-1);        }        else {            return key;        }    }    int findKthLargest(vector<int>& nums, int k) {        return findKLargestElement(k, nums, 0, nums.size()-1);    }


0 0
原创粉丝点击