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

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


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:

  • 1 <= nums.length <= 105
  • nums[i] is either 0 or 1.
class Solution {
public:
    int longestSubarray(vector<int>& A) {
         int i = 0, j, k = 1;
        for (j = 0; j < A.size(); ++j) {
            if (A[j] == 0) k--;
            if (k < 0 && A[i++] == 0) k++;
            cout<<i<<" ";
        }
        cout<<endl;
        return j - i - 1;
    }
};

Post a Comment

0 Comments