2015. Заливка области

Medium 3 решили
Дана таблица цветов image, стартовая клетка (sr, sc) и новый цвет color. Это «ведро заливки»: из старта перекрасьте в color саму клетку и всех соседей того же исходного цвета, до которых можно дойти шагами вверх/вниз/влево/вправо. По диагонали ходить нельзя. Верните таблицу после заливки.

Старт (1, 1), новый цвет 2:
1 1 1        2 2 2
1 1 0   →    2 2 0
1 0 1        2 0 1
правый нижний 1 не трогаем: до него нельзя дойти, не наступив на 0.

Примеры:

Вход: {"image": [[1, 1, 1], [1, 1, 0], [1, 0, 1]], "sr": 1, "sc": 1, "color": 2}
Выход: [[2, 2, 2], [2, 2, 0], [2, 0, 1]]
Объяснение: Из (1,1) заливаем связную единицу; правый нижний 1 отделён нулём и остаётся 1.
Вход: {"image": [[0, 0, 0], [0, 0, 0]], "sr": 0, "sc": 0, "color": 0}
Выход: [[0, 0, 0], [0, 0, 0]]
Объяснение: Новый цвет совпадает со стартовым — таблица не меняется.
Вход: {"image": [[1, 2, 1], [2, 2, 2], [1, 2, 1]], "sr": 1, "sc": 1, "color": 3}
Выход: [[1, 3, 1], [3, 3, 3], [1, 3, 1]]
Объяснение: Заливка идёт крестом из двоек; угловые единицы соседями по стороне не являются.

Ограничения:

m == image.length n == image[i].length 1 <= m, n <= 50 0 <= image[i][j], color <= 50 0 <= sr < m 0 <= sc < n

Теги:

Матрица DFS

Комментарии (0)

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

Пока нет комментариев. Будьте первым!