Array Nesting LeetCode solution in Python
1class Solution:2def arrayNesting(self, nums: List[int]) -> int:3max_len = 04visited = set()56def dfs(nums, index, dfs_visited):7if index in dfs_visited:8return len(dfs_visited)910# add the index to dfs_visited and visited11visited.add(index)12dfs_visited.add(index)13return dfs(nums, nums[index], dfs_visited)1415for i in range(len(nums)):16if i not in visited:17max_len = max(max_len, dfs(nums, i, set()))18return max_len