grid размером m × n. Каждой клетке нужно присвоить уровень — целое число от 1 — так, чтобы для любых двух клеток p и q, стоящих в одной строке или в одном столбце, выполнялось:
- если grid[p] < grid[q], то уровень p меньше уровня q;
- если grid[p] == grid[q], то уровни равны;
- если grid[p] > grid[q], то уровень p больше уровня q.
Клетки, не делящие ни строку, ни столбец, друг на друга не влияют. Уровни должны быть как можно меньше — при этих правилах такая расстановка единственна.
Верните таблицу того же размера, где на месте каждой клетки стоит её уровень.grid=[[5, 1], [5, 9]] → [[2, 1], [2, 3]]
1 — наименьшее в своей строке и столбце, уровень 1. Обе пятёрки в одном столбце и равны, поэтому уровень у них общий; верхняя пятёрка больше единицы в своей строке, значит уровень 2. Девятка больше пятёрки и в строке, и в столбце с единицей — уровень 3.
grid=[[4, 4, 4]] → [[1, 1, 1]]
Все значения равны и стоят в одной строке — у всех уровень 1.
grid=[[3, -2, 8], [7, 3, 0], [-2, 6, 3]] → [[2, 1, 3], [3, 2, 1], [1, 3, 2]]
grid=[[5, 1], [5, 9]]
[[2, 1], [2, 3]]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 99 тестов на сервере, включая скрытые.