链接:https://leetcode-cn.com/problems/array-nesting/
记录已访问过的节点,dfs搜索嵌套的最大深度即可。
java代码:
class Solution {
public int arrayNesting(int[] nums) {
int [] visited = new int [nums.length];
int max = 0;
for(int i = 0;i<nums.length;i++)
{
int len = 0;
if(visited[i]==0)
{
int j = i;
while(visited[j]==0)
{
visited[j] = 1;
j = nums[j];
len++;
}
}
if(max<len)
max = len;
}
return max;
}
}
python:
class Solution(object):
def arrayNesting(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
visited = set()
res = 0
for i in range (len(nums)):
temp = 0;
if(i not in visited):
j = i;
while(j not in visited):
visited.add(j)
j = nums[j]
temp+=1
if(res<temp):
res= temp
return res