LeetCode in Kotlin

565. Array Nesting

Medium

You are given an integer array nums of length n where nums is a permutation of the numbers in the range [0, n - 1].

You should build a set s[k] = {nums[k], nums[nums[k]], nums[nums[nums[k]]], ... } subjected to the following rule:

Return the longest length of a set s[k].

Example 1:

Input: nums = [5,4,0,3,1,6,2]

Output: 4

Explanation: nums[0] = 5, nums[1] = 4, nums[2] = 0, nums[3] = 3, nums[4] = 1, nums[5] = 6, nums[6] = 2. One of the longest sets s[k]: s[0] = {nums[0], nums[5], nums[6], nums[2]} = {5, 6, 2, 0}

Example 2:

Input: nums = [0,1,2]

Output: 1

Constraints:

Solution

class Solution {
    fun arrayNesting(nums: IntArray): Int {
        var index: Int
        var value: Int
        var maxLen = 0
        var len: Int
        for (i in nums.indices) {
            if (nums[i] != -1) {
                index = i
                len = 0
                while (nums[index] != -1) {
                    value = nums[index]
                    nums[index] = -1
                    index = value
                    len++
                }
                maxLen = Math.max(len, maxLen)
            }
        }
        return maxLen
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy