Ctrl K

Кого видно в строю

Средняя
Люди стоят в прямоугольном строю m × n; heights[r][c] — рост человека в ряду r и колонне c. Каждый смотрит только вправо по своему ряду и только вниз по своей колонне. Человек в клетке (r, c) видит человека в клетке (r2, c2), если: - либо r2 = r и c2 > c, либо c2 = c и r2 > r; - каждый, кто стоит строго между ними, ниже их обоих. Верните матрицу m × n, где в клетке (r, c) записано, сколько людей видит человек (r, c).
Пример 1
heights=[[3, 1, 2], [2, 4, 1]] → [[3, 2, 1], [1, 1, 0]]

Человек (0, 0) ростом 3 видит справа (0, 1) и (0, 2) — между ним и (0, 2) стоит только человек ростом 1, он ниже обоих. Внизу он видит (1, 0). Итого 3. Человек (1, 1) ростом 4 видит только (1, 2).

Пример 2
heights=[[5, 5, 5]] → [[1, 1, 0]]

Каждый видит соседа справа, но не дальше: сосед такого же роста закрывает обзор.

Ограничения
  • 1 ≤ m, n ≤ 400
  • 1 ≤ heights[r][c] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПрямоугольники из одних единиц СредняяСамый большой горящий блок СложнаяДальние прыжки по полю СложнаяБлоки с невозрастающими строками СложнаяПрямой обход дерева поиска Средняя
загружаем Python…
Вход
heights=[[3, 1, 2], [2, 4, 1]]
Ожидается
[[3, 2, 1], [1, 1, 0]]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 86 тестов на сервере, включая скрытые.