Как я могу найти дыру в 2D матрице?

Я знаю, что название кажется двусмысленным, и по этой причине яМы приложили изображение, которое поможет вам понять проблему. Мне нужно найти дыры внутри белого региона. Отверстие определяется как одна или несколько ячеек со значением '0' внутри белого региона, я имею в виду этоЯ должен быть полностью закрыт клеткойs со значением '1' (например, здесь мы можем видеть три отверстия, отмеченные как 1, 2 и 3). Я'Мы придумали довольно наивное решение: 1. Поиск во всей матрице ячеек со значением '0' 2. Запустите DFS (Flood-Fill), когда такая ячейка (черная) встречается, и проверьте, можем ли мы коснуться границы основной прямоугольной области. 3. Если мы можем коснуться границы во время DFS, то она 'не дыра, и если мы можемне достичь границы, то этобудет рассматриваться как дыра

Теперь это решение работает, но мне было интересно, если естьЛюбое другое эффективное / быстрое решение этой проблемы.

Пожалуйста, поделись своими мыслями. Благодарю.

Ответы на вопрос(5)

Ваш ответ на вопрос