2369. Check if There is a Valid Partition For The Array

Difficulty:
Related Topics:
Similar Questions:

    Problem

    You are given a 0-indexed integer array nums. You have to partition the array into one or more contiguous subarrays.

    We call a partition of the array valid if each of the obtained subarrays satisfies one of the following conditions:

    Return true** if the array has at least one valid partition**. Otherwise, return false.

      Example 1:

    Input: nums = [4,4,4,5,6]
    Output: true
    Explanation: The array can be partitioned into the subarrays [4,4] and [4,5,6].
    This partition is valid, so we return true.
    

    Example 2:

    Input: nums = [1,1,1,2]
    Output: false
    Explanation: There is no valid partition for this array.
    

      Constraints:

    Solution

    /**
     * @param {number[]} nums
     * @return {boolean}
     */
    var validPartition = function(nums) {
        var dp = Array(nums.length + 1);
        dp[nums.length] = true;
        for (var i = nums.length - 1; i >= 0; i--) {
            dp[i] = (nums[i] === nums[i + 1] && dp[i + 2])
                || (nums[i] === nums[i + 1] && nums[i + 1] === nums[i + 2] && dp[i + 3])
                || (nums[i] + 1 === nums[i + 1] && nums[i + 1] + 1 === nums[i + 2] && dp[i + 3]);
        }
        return dp[0];
    };
    

    Explain:

    nope.

    Complexity: