Magicsheet logo

Longest Subarray of 1's After Deleting One Element

Medium
75%
Updated 6/1/2025

Longest Subarray of 1's After Deleting One Element

What is this problem about?

This array problem provides a binary array containing only 0s and 1s. You are required to delete exactly one element from the array. Your objective is to find the size of the longest contiguous subarray containing only 1s after that single deletion. If the array is entirely 1s, you still must delete one element, resulting in a length of N - 1.

Why is this asked in interviews?

This is a textbook Sliding Window problem that frequently appears in interviews to test boundary conditions and constraint management. It asks candidates to track a specific "allowance" (in this case, one deletion). Interviewers use it to see if you can elegantly expand and shrink a window based on the count of a specific character, proving your comfort with linear-time optimization.

Algorithmic pattern used

This problem perfectly fits the Sliding Window (Two Pointers) pattern. We maintain a window [left, right] and a counter for the number of 0s inside the window. As we expand the window by moving right, we add to the zero-counter if we see a 0. If the zero-counter exceeds 1, our window is invalid, so we shrink it by moving left until the zero-counter drops back down to 1. The maximum length of valid 1s is the size of the window minus 1 (for the deleted zero).

Example explanation

Array: [1, 1, 0, 1, 0, 1]

  • right=0 (1): zeros=0. Window [1]. Max = 1-0 = 1.
  • right=1 (1): zeros=0. Window [1,1]. Max = 2-0 = 2.
  • right=2 (0): zeros=1. Window [1,1,0]. Max = 3-1 = 2 (The 1s are [1,1]).
  • right=3 (1): zeros=1. Window [1,1,0,1]. Max = 4-1 = 3 (The 1s are [1,1,1]).
  • right=4 (0): zeros=2. Invalid! We must shrink left until zeros=1. left moves past index 2. Window is now [1, 0].
  • right=5 (1): zeros=1. Window [1, 0, 1]. Length is 3-1 = 2. The maximum size found was 3.

Common mistakes candidates make

The most frequent mistake is forgetting the rule that you must delete exactly one element. If the input array is [1, 1, 1], candidates often output 3. But you are forced to delete one element, so the correct answer is 2. The formula right - left + 1 - 1 (which simplifies to right - left) beautifully handles this automatically when applied to a sliding window that bounds at most one zero.

Interview preparation tip

When tackling the Longest Subarray of 1's After Deleting One Element interview pattern, think of "deleting an element" as "having an allowance to include one zero in your all-ones window." Reframing the problem from "deletion" to "budgeted inclusion" makes it identical to the classic "Max Consecutive Ones III" problem, allowing you to reuse the exact same sliding window template.

Similar Questions