Files
obsidian/АиСД/Задачи/LeetCode/Longest Subarray of 1’s After Deleting One Element.md
roma-dxunvrs f57762fd3b Init
2026-09-03 21:40:46 +03:00

761 B

Leetcode #1494 | #Medium | Скользящее окно

Идея

Скользящее окно с счетчиком нулей, res = max(res, r-l) <- не делаем +1 так как один символ надо удалить по-любому

Big-O

  • Время O(N)
  • Память O(N)

Код

class Solution {
    public int longestSubarray(int[] nums) {
        int l = 0;
        int zeroCount = 0;
        int res = 0;
        for (int r = 0; r < nums.length; r++) {
            if (nums[r] == 0) zeroCount++;
            while (zeroCount > 1) {
                if (nums[l] == 0) zeroCount--;
                l++;
            }
            res = Math.max(res, r - l);
        }
        return res;
    }
}