题目描述
查找一个数组的第K小的数,注意同样大小算一样大。 如 2 1 3 4 5 2 第三小数为3。
输入描述:
输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。
输出描述:
输出第k小的整数。
示例1
输入
复制
6
2 1 3 5 2 2
3
输出
复制
3
思路:去重然后遍历
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int a[1005];
int main(int argc, char *argv[]) {
int n;
while(~scanf("%d",&n))
{
vector <int> v;
for(int i = 0; i < n; i++)
{
int t;
scanf("%d",&t);
a[t] = 1;
}
int k;
scanf("%d",&k);
for(int i = 1; i < 1001; i++)
{
if(a[i] == 1)
v.push_back(i);
}
printf("%d\n",v.at(k-1));
}
return 0;
}