Files
obsidian/АиСД/Задачи/LeetCode/Max Consecutive Ones II.md
T
roma-dxunvrs c90a404c40
deploy / Pull and Restart (push) Successful in 18s
Refactor
2026-09-19 19:20:43 +03:00

710 B

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

Идея

Скользящее окно с счетчиком нулей, если > 1 то двигаем l, если <= 1 то берем максимум

Big-O

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

Код

public class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        int l = 0, zeroCount = 0, 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 + 1);
        }
        return res;
    }
}