题目链接

​https://www.nowcoder.com/practice/69ef2267aafd4d52b250a272fd27052c?tpId=37&tqId=21281&tPage=3&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking​

题目描述

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

详细描述:

接口说明

原型:

bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);

输入参数:

     unsignedint uiInputNum //输入整数个数

int * pInputArray  //输入整数数组

unsignedint uiK   //需输出uiK个整数

输出参数(指针指向的内存区域保证有效):

    int * pOutputArray //最小的uiK个整数

返回值:

        false 异常失败

          true  输出成功

输入描述:

输入说明 
1 输入两个整数
2 输入一个整数数组

输出描述:

输出一个整数数组

示例1

输入

复制

5 2
1 3 5 7 2

输出

复制

1 2

题解:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(int a, int b){
return a < b;
}
int main(){
int n;
while (cin >> n){
int k;
cin >> k;
vector<int> vct;
for (int i = 0; i < n; i++){
int num;
cin >> num;
vct.push_back(num);
}
sort(vct.begin(), vct.end(), cmp);
for (vector<int>::iterator itr = vct.begin(); itr < vct.begin() + k; itr++){
cout << *itr << " ";
}
cout << endl;
}
return 0;
}