做门户网站有前途吗,网页开发培训,投资 公司 网站模板,找室内设计公司思路#xff1a;也是tok的问题#xff0c;与上篇博客思路一样#xff0c;只不过是求前k个小的元素#xff01;
基于快排分块思路的代码如下#xff1a;
class Solution {
public:int getkey(vectorintnums,int left,int right){int rrand();return nums[r%…
思路也是tok的问题与上篇博客思路一样只不过是求前k个小的元素
基于快排分块思路的代码如下
class Solution {
public:int getkey(vectorintnums,int left,int right){int rrand();return nums[r%(right-left1)left];}void qsort(vectorintnums,int left,int right,int k){if(leftright ) return ;vectorintret(k);int l-1,rright1;int i0;int keygetkey(nums,left,right);while(ir){if(nums[i]key){swap(nums[l],nums[i]);}else if(nums[i]key){swap(nums[--r],nums[i]);}else{i;}}int al-left1;int br-l-1;int cright-r1;if(ak){return qsort(nums,left,l,k);}else if(abk){return ;}else{return qsort(nums,r,right,k-a-b);}return ;}vectorint inventoryManagement(vectorint stock, int cnt) {int nstock.size();qsort(stock,0,n-1,cnt);return {stock.begin(),stock.begin()cnt};}
}; 优先级队列代码
class Solution {
public:vectorint inventoryManagement(vectorint stock, int cnt){vectorintret(cnt);priority_queueint,vectorint,greaterintq;for(auto ch:stock){q.push(ch);}for(int i0;icnt;i){ret[i]q.top();q.pop();} return ret;}
};