565. 数组嵌套
思路:本题求的就是连通块的最大长度。下标元素i会和它的值nums[i]有一条边。
class Solution {
public:
int arrayNesting(vector<int>& nums) {
int mx=0;
int n=nums.size();
vector<bool> sta(n,0);
for(int i=0;i<n;i++){
if(!sta[i]){
int j=i;
int ans=0;
//遍历该连通块的所有元素
while(!sta[j]){
ans++;
sta[j]=1;
j=nums[j];
}
mx=max(mx,ans);
}
}
return mx;
}
};