2025-08-24 Daily Challenge

Today I have done leetcode's August LeetCoding Challenge with cpp.

August LeetCoding Challenge 24

Description

Longest Subarray of 1's After Deleting One Element

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.

Solution

class Solution {
public:
  int longestSubarray(vector<int>& nums) {
    int start = 0;
    int count = 0;
    int answer = 0;
    for(int i = 0; i < nums.size(); ++i) {
      count += !nums[i];
      while(count > 1) {
        count -= !nums[start];
        start += 1;
      }
      answer = max(answer, i - start);
    }
    return answer;
  }
};

// Accepted
// 82/82 cases passed (3 ms)
// Your runtime beats 28.87 % of cpp submissions
// Your memory usage beats 62.71 % of cpp submissions (60 MB)