func arrayNesting(nums []int) int {
	max := 0
	visited := make([]bool, len(nums))
	for _, i := range nums {
		if !visited[i] {
			cnt := 0
			for {
				visited[i] = true
				cnt, i = cnt+1, nums[i]
				if visited[i] {
					break
				}
			}
			if max < cnt {
				max = cnt
			}
		}
	}
	return max
}