华为机试HJ58:输入n个整数,输出其中最小的k个
Posted 翟天保Steven
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试HJ58:输入n个整数,输出其中最小的k个相关的知识,希望对你有一定的参考价值。
作者:Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
题目描述:
输入n个整数,输出其中最小的k个。
本题有多组输入样例,请使用循环读入,比如while(cin>>)等方式处理
输入描述:
第一行输入两个整数n和k
第二行输入一个整数数组
输出描述:
输出一个从小到大排序的整数数组
示例:
输入:
5 2 1 3 5 7 2
输出:
1 2
解题思路:
本题比较简单,就输入n个整数后用sort快速排序,再输出前k个即可。
测试代码:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n,k;
while(cin>>n>>k)
{
vector<int> nums;
for(int i=0;i<n;++i)
{
int temp;
cin>>temp;
nums.push_back(temp);
}
sort(nums.begin(),nums.end());
for(int i=0;i<k;++i)
{
cout<<nums[i]<<" ";
}
cout<<endl;
}
return 0;
}
以上是关于华为机试HJ58:输入n个整数,输出其中最小的k个的主要内容,如果未能解决你的问题,请参考以下文章