现有nnn个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000。
第一行为n和k; 第二行开始为n个正整数的值,整数间用空格隔开。
第k个最小整数的值;若无解,则输出“NO RESULT”。
10 3 1 3 3 7 2 5 1 2 4 6
3
n≤10000
题解:一道入门的桶排序,直接上代码
代码:
1 #include<iostream> 2 using namespace std; 3 4 int count[30000]={0}; 5 int main(){ 6 int a[10000]; 7 int n,k; 8 cin>>n>>k; 9 for(int i=0;i<n;i++){ 10 cin>>a[i]; 11 count[a[i]]++; 12 } 13 14 int time=0; 15 for(int i=0;i<30000;i++){ 16 if(count[i]!=0) time++; 17 if(time==k){ 18 cout<<i; 19 return 0; 20 } 21 } 22 cout<<"NO RESULT"; 23 return 0; 24 }
原文:https://www.cnblogs.com/xwh-blogs/p/12815359.html