zoukankan      html  css  js  c++  java
  • 剑指29:最小的k个数

    题目描述

    输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。
    class Solution {
    public:
        vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
            vector <int> result;
            int len=input.size();
            if (input.empty() || k<=0 || len<k) return result;
            multiset<int, greater<int> >leastNumbers;
            multiset<int , greater<int >>::iterator iterGreater;
            
            vector <int>::iterator iter=input.begin();
            for (;iter!=input.end();++iter){
                if (leastNumbers.size()<k)
                {
                    leastNumbers.insert(*iter);
                }
                else {
                    iterGreater=leastNumbers.begin();
                    if (*iter < *(leastNumbers.begin())){
                        leastNumbers.erase(iterGreater);
                        leastNumbers.insert(*iter);
                    }
                }
            }
            for (iterGreater=leastNumbers.begin();iterGreater!=leastNumbers.end();++iterGreater)
            {
                result.push_back(*iterGreater);
            }
            return result;
            
        }
    };
  • 相关阅读:
    JDK -GET,POST
    (三十四)什么是自动化测试模型之模块化驱动测试实例
    Linux 运维命令及知识
    python_检测一些特定的服务端口有没有被占用
    程序员常用网站
    网络安全与CTF在线学习资源网站
    MySQL_语句
    python脚本实现自动安装nginx
    超赞的Linux软件
    Python运维中常用的_脚本
  • 原文地址:https://www.cnblogs.com/hrnn/p/13429759.html
Copyright © 2011-2022 走看看