Выбор ответа Middle Матрицы обновлено
Спиральный обход
Вопрос
Обход по спирали с границами top, bottom, left, right. Зачем проверки if (top <= bottom) и if (left <= right) перед нижним и левым проходом?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Чтобы на неквадратной матрице не пройти одну полосу дважды. После прохода по верху и правому краю границы сдвигаются.
Варианты ответа
- Чтобы на неквадратной матрице не пройти одну полосу дваждыправильный ответ
- Для скорости: проверка отсекает лишние итерации цикла
- Чтобы корректно обработать пустую матрицу
[] - Они не нужны: границы и так не пересекаются в цикле
Разбор
После прохода по верху и правому краю границы сдвигаются. В матрице, например, 3 × 1 или 1 × 3, оставшаяся «полоса» уже пройдена, и без проверки элементы попадут в ответ повторно.
- На скорость не влияют.
- Пустую матрицу проверяют отдельно в начале.
- Без них ответ неверен на прямоугольных матрицах.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.