#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
int a[maxn];
int main(){
int n,ans=114514;
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",a+i);
for(int i=1;i<=n;i++){
int sum=1;
int k=i;
while(k<=n&&a[k]!=i&&sum<n&&sum<ans)k=a[k],sum++;
if(a[k]==i)ans=sum;
}
printf("%d",ans);
return 0;
}
求问:以上代码能否在不改算法的基础上优化
提交记录