前言:
21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。
题目描述:
查找一个数组的第K小的数,注意同样大小算一样大。 如 2 1 3 4 5 2 第三小数为3。
输入描述
输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。
输出描述:
输出第k小的整数。
解答
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
#include<cmath>
#include<string>
#include<queue>
#include<set>
using namespace std;
int main()
{
int n;
int seq;
while (scanf("%d", &n) != EOF) {
set<int> s;
int temp;
for (int i = 0; i < n; i++) {
cin >> temp;
s.insert(temp);
}
cin >> seq;
set<int>::iterator it=s.begin();
while (--seq)
it++;
cout << *it << endl;
}
return 0;
}