Все темы
141

Чтение матрицы по диагоналям

Tier 1Закрыто

Где применяется

1. Задача

У тебя есть сетка чисел. Надо выписать все её клетки в один плоский список, проходя сетку по диагоналям. Направление чередуется: одну диагональ читаешь снизу вверх, следующую сверху вниз.

Для [[1,2,3],[4,5,6],[7,8,9]] ответ [1,2,4,7,5,3,6,8,9]. Вся задача в том, чтобы правильно пройти этот зигзаг.

Этот шаг из платной части

Бесплатные шаги в начале курса (их 33) открыты всем: урок, задача и тесты. Этот шаг открывается с полным доступом. Начни с бесплатного аккаунта и бесплатных шагов.

Завести бесплатный аккаунтПосмотреть, что входит

Как узнать

Обход матрицы (спираль / диагонали) (Matrix traversal (spiral / diagonal))

Эти слова в условии значат этот паттерн

  • прочитать или заполнить сетку по спирали
  • обойти матрицу по диагоналям
  • повернуть матрицу на 90 градусов
  • посетить каждую ячейку в фиксированном геометрическом порядке

Похоже, но не то

Сетка r на c даёт O(rc), потому что каждая клетка посещается один раз. Память O(1) сверх ответа.

На LeetCode

Задачи на матрицу, где клетки читают или группируют по диагоналям. У клеток одной диагонали общая сумма r + c, а у диагоналей другого направления общая разность r минус c, так что любое из этих чисел годится как ключ.

Мы используем необходимые куки для работы сайта (вход и язык). Если ты согласишься, мы также загрузим Google Analytics, чтобы видеть, какие страницы читают, и Google reCAPTCHA для защиты форм обратной связи и сообщений об ошибке от спама. Политика конфиденциальности