Код Senior Интервалы обновлено
Вставка интервала
Условие
Вставь новый интервал в отсортированный непересекающийся список, слив пересечения.
Примеры
insertInterval([[1, 3], [6, 9]], [2, 5]) // [[1, 5], [6, 9]]
insertInterval([[1, 2], [3, 5], [6, 7], [8, 10], [12, 16]], [4, 8]) // [[1, 2], [3, 10], [12, 16]]
insertInterval([], [1, 2]) // [[1, 2]]
Как подойти
Разбиение на три цикла вместо одного с флагами делает код линейным и легко проверяемым. Сортировать не надо - вход уже упорядочен, это и есть выигрыш относительно общего слияния.
Подсказки: 2
- Три фазы: до пересечения, слияние, после.
- Границы нового интервала расширяются минимумом и максимумом.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.