Problem P04. [算法课分治] 找到 k 个最小数
输入整数数组 arrarr,找出其中最小的 k 个数。
输入
第一行输入两个整数,第一个代表数组的长度,第二个代表 k,数字与数字之间用空格间开
第二行输入一行数字代表数组 arrarr。数字与数字之间用空格间开
- 0≤k≤arr.length≤10000
- 0≤arr[i]≤10000
输出
输出一行整数,表示最小的 �k 个数。数字与数字之间用空格间开
样例
标准输入复制文本 |
3 2 3 2 1 |
标准输出复制文本 |
1 2 |
标准输入复制文本 |
4 1 0 0 1 1 |
标准输出复制文本 |
0 |
标准输入复制文本 |
4 2 1 1 3 4 |
标准输出复制文本 |
1 1 |
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
class Solution{
public:
vector<int> getLeastNumber(vector<int>& arr,int k){
vector<int> res;
sort(arr.begin(),arr.end());
for(int i=0;i<k;i++){
res.push_back(arr[i]);
}
return res;
}
};
int main(){
Solution s;
int n,k;
cin>>n>>k;
vector<int> v,re;
v.resize(n);
for(int i=0;i<n;i++){
cin>>v[i];
}
re=s.getLeastNumber(v,k);
for(int i=0;i<re.size();i++){
cout<<re[i]<<" ";
}
return 0;
}