Найти тему
10,2 тыс подписчиков

🖥 Решение задачи 1004 из Leetcode (Max Consecutive Ones III)

Задача часто встречается на собеседованиях.

Код оптимального решения с 2 указателями:
nums = [0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1]
k = 3

left = right = max1 = zeros = 0
while right < len(nums):
if nums[right] == 0:
zeros += 1
while zeros > k:
if nums[left] == 0:
zeros -= 1
left += 1
max1 = max(max1, right - left + 1)
right += 1

print(max1)



Около минуты