Перейти к содержимому

Yandex / Яндекс (алгоритмы)

Актуальность: 4 кв 2025

Задача: Дан непустой массив из нулей и единиц. Нужно определить, какой максимальный по длине подинтервал единиц можно получить, удалив (пропустив) ровно один элемент массива. Вернуть 0, если такого подинтервала не существует. Удалять один элемент из массива обязательно. go/slices-arrays

Заголовок раздела «Задача: Дан непустой массив из нулей и единиц. Нужно определить, какой максимальный по длине подинтервал единиц можно получить, удалив (пропустив) ровно один элемент массива. Вернуть 0, если такого подинтервала не существует. Удалять один элемент из массива обязательно. go/slices-arrays»
[0,0,0,1,1,0,1,1,1,0,0,0]
->5
O(n) - time
O(1) - memory
len(input) >0
[0] ->0
[1] ->0

Задача: Дан массив произвольных чисел. Есть число x. Требуется понять, есть ли в данном массиве непрерывный подотрезок, сумма элементов которого равнялась бы x. (3 -1 12). В таких случаях мы возвращаем индексы границ этого отрезка, левую и правую, включительно. Соответственно, (1, 3) в виде какой - то пары чисел. Если же такого отрезка не находится, возвращаем (-1, -1). algorithms/data-structures

Заголовок раздела «Задача: Дан массив произвольных чисел. Есть число x. Требуется понять, есть ли в данном массиве непрерывный подотрезок, сумма элементов которого равнялась бы x. (3 -1 12). В таких случаях мы возвращаем индексы границ этого отрезка, левую и правую, включительно. Соответственно, (1, 3) в виде какой - то пары чисел. Если же такого отрезка не находится, возвращаем (-1, -1). algorithms/data-structures»
a = [5,3,-1,12,123123]
x = 14
->(1,3)
x = 9999 // пример, когда мы не находим, что возвращаем.
->(-1,-1)