题解 P1138 【第k小整数】 发表于 2019-01-17 更新于 2024-07-11 阅读次数: Waline: P1138 【第k小整数】题解。 其实,这题可以很简单。 首先,读入n和k; 然后,读入n个整数; 读入时去重。 去完了就排序。 然后输出。 OK!!!!!! 上代码:(c++) 12345678910#include <bits/stdc++.h>//包含所有头文件的头文件using namespace std;int n,a[10005],i,k;//不解释bool s[30005];//用来去重的桶int main(void){ scanf ("%d%d",&n,&k); for (;i<n;i++){ scanf ("%d",&a[i]);//读入 if (s[a[i]])n--,i--;//如果出现过了,总数--,i--(重读a[i]) else s[a[i]]=1;//不然标记一下 }//读完了就去重完了//这就是我的和别的调解不同的地方:我用桶去重。 sort (a,a+n);//排序! if (n<k||k<=0)printf ("NO RESULT");//坑人的#3、5、8 else printf ("%d",a[k-1]);//因为我是0下标,所以k要-1 }```