【P1138 第k小整数】sort(排序)和 unique(数组去重)
https://www.luogu.org/problemnew/show/P1138
本题的核心是:.去重排序
sort(a, a+n), n = unique(a, a+n) - a;
unique(a, a+n)只能把相邻的数字中的多余部分放到数组后,并不是真正的删除。且只能处理相邻元素,所以使用时应先排序。
#include<iostream> #include<algorithm> using namespace std; int a[10000],s[1000],n,k,j,ans; int main() { cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); ans=unique(a,a+n)-a; //数组去重 if(k<ans) cout<<a[k]; //如果去重以后k<=ans,则输出对应的数 else cout<<"NO RESULT";//否则输出 NO RESULT return 0; }
浙公网安备 33010602011771号