LeetCode in Kotlin

3637. Trionic Array I

Easy

You are given an integer array nums of length n.

An array is trionic if there exist indices 0 < p < q < n − 1 such that:

Return true if nums is trionic, otherwise return false.

Example 1:

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

Output: true

Explanation:

Pick p = 2, q = 4:

Example 2:

Input: nums = [2,1,3]

Output: false

Explanation:

There is no way to pick p and q to form the required three segments.

Constraints:

Solution

class Solution {
    fun isTrionic(nums: IntArray): Boolean {
        var p = 0
        var q = 0
        val n = nums.size
        for (i in 1..<n - 1) {
            if (nums[i - 1] == nums[i]) {
                return false
            }
            if (nums[i - 1] < nums[i] && nums[i] > nums[i + 1]) {
                if (p != 0) {
                    return false
                }
                p = i
            }
            if (nums[i - 1] > nums[i] && nums[i] < nums[i + 1]) {
                if (p == 0 || q != 0) {
                    return false
                }
                q = i
            }
        }
        return q > 0
    }
}