565.array-nesting.go 298 B

1234567891011121314151617181920
  1. func arrayNesting(nums []int) int {
  2. max := 0
  3. visited := make([]bool, len(nums))
  4. for _, i := range nums {
  5. if !visited[i] {
  6. cnt := 0
  7. for {
  8. visited[i] = true
  9. cnt, i = cnt+1, nums[i]
  10. if visited[i] {
  11. break
  12. }
  13. }
  14. if max < cnt {
  15. max = cnt
  16. }
  17. }
  18. }
  19. return max
  20. }