本题主要是通过一个数组记录该数是否已经被使用,配合cnt记录能产生的最大数组长度。
class Solution {
public:
int arrayNesting(vector<int>& nums) {
int n=nums.size();
int ans[n];
memset(ans,0,sizeof(ans));
int res=-1;
for(int i=0;i<n;i++)
{
int cnt=0;
while(!ans[i])
{
ans[i]=1;
cnt++;
i=nums[i];
}
res=max(res,cnt);
}
return res;
}
};