简单题,本来还想用dfs搜素,后来发现根本不需要,直接处理即可
class Solution {
public:
int findCircle(int start, vector<int>& nums, vector<int>& visit)
{
int temp=start;
int count=1;
while(start!=nums[temp]){
temp=nums[temp];
visit[temp]=1;
count++;
}
return count;
}
int arrayNesting(vector<int>& nums) {
int maxCircle=0;
vector<int> visit(nums.size(),0);
for(int i=0;i<nums.size();i++)
{
if(visit[i]==0){
visit[i]=1;
int circle = findCircle(i,nums,visit);
maxCircle = maxCircle>circle?maxCircle:circle;
}
}
return maxCircle;
}
};