[甲级传送门](https://www.patest.cn/contests/pat-a-practise/1117
)
乙级传送门
将所有数从大到小排序,从左往后数,当第i个数小于等于i时满足要求
#include<iostream>
#include<algorithm>
using namespace std;
#define MAX_N 100100
int N;
int a[MAX_N];
bool cmp(int a,int b){
return a>b;
}
int main(){
int i;
cin>>N;
for(int i=0;i<N;i++){
cin>>a[i];
}
sort(a,a+N,cmp);
for(i=0;i<N;i++){
if(a[i]<=i+1)
break;
}
cout<<i;
}

本文解析了PAT甲级1117题的算法实现思路,介绍了如何通过排序和遍历来找到满足特定条件的元素下标。代码使用C++编写,实现了将一组整数按降序排列,并找出第一个不大于其位置序号的元素。
381

被折叠的 条评论
为什么被折叠?



