1493. Longest Subarray of 1's After Deleting One Element

Difficulty:
Related Topics:
Similar Questions:

    Problem

    Given a binary array nums, you should delete one element from it.

    Return **the size of the longest non-empty subarray containing only **1's in the resulting array. Return 0 if there is no such subarray.

      Example 1:

    Input: nums = [1,1,0,1]
    Output: 3
    Explanation: After deleting the number in position 2, [1,1,1] contains 3 numbers with value of 1's.
    

    Example 2:

    Input: nums = [0,1,1,1,0,1,1,0,1]
    Output: 5
    Explanation: After deleting the number in position 4, [0,1,1,1,1,1,0,1] longest subarray with value of 1's is [1,1,1,1,1].
    

    Example 3:

    Input: nums = [1,1,1]
    Output: 2
    Explanation: You must delete one element.
    

      Constraints:

    Solution

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var longestSubarray = function(nums) {
        var max = 0;
        var last = 0;
        var current = 0;
        var hasZero = false;
        for (var i = 0; i <= nums.length; i++) {
            if (nums[i] === 0 || i === nums.length) {
                max = Math.max(max, last + current);
                last = current;
                current = 0;
            } else {
                current += 1;
            }
            hasZero = hasZero || nums[i] === 0;
        }
        return hasZero ? max : max - 1;
    };
    

    Explain:

    nope.

    Complexity: