题解 | #输入n个整数,输出其中最小的k个#

输入n个整数,输出其中最小的k个

http://www.nowcoder.com/practice/69ef2267aafd4d52b250a272fd27052c

using namespace std;
int main()
{
    int n = 0, k = 0;
    while(cin >> n >> k)
    {
        vector<int> arr;
        int num = 0;
        while(n--)
        {
            cin >> num;
            arr.push_back(num);
        }
        vector<int> vec(k, 0);
        
        priority_queue<int> Q;
        for (int i = 0; i < k; ++i) 
        {
            Q.push(arr[i]);
        }
        for (int i = k; i < (int)arr.size(); ++i) 
        {
            if (Q.top() > arr[i])
            {
                Q.pop();
                Q.push(arr[i]);
            }
        }
        for (int i = 0; i < k; ++i) 
        {
            vec[i] = Q.top();
            Q.pop();
        }
        for(int i = k - 1; i >0; --i)
        {
            cout << vec[i] << ' ';
        }
        cout << vec[0] << endl;
        
    }
    return 0;
}

全部评论

相关推荐

码农索隆:卡学历都不行了,开始卡颜值了
点赞 评论 收藏
分享
05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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