最小的K个数(C++牛客网)

电玩女神 2022-11-15 11:17 314阅读 0赞

解题思路:

(1)使用优先队列,priority_queue

  1. class Solution {
  2. public:
  3. vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
  4. vector<int> v;
  5. priority_queue<int,vector<int>,less<int>> pq;
  6. if(k>input.size() || k==0) return v;
  7. for(int i=0;i<input.size();i++) {
  8. if(pq.empty()) pq.push(input[i]);
  9. else if(pq.size()<k) pq.push(input[i]);
  10. else {
  11. pq.push(input[i]);
  12. pq.pop();
  13. }
  14. }
  15. while(!pq.empty()) {
  16. v.push_back(pq.top());
  17. pq.pop();
  18. }
  19. return v;
  20. }
  21. };

发表评论

表情:
评论列表 (有 0 条评论,314人围观)

还没有评论,来说两句吧...

相关阅读