Я искал некоторые вопросы по собеседованию, и я наткнулся на этот вопрос:Поиск блоков в массивах
Существует массив m x n. Блок в массиве обозначается символом 1, а 0 не указывает на какой-либо блок. Вы должны найти количество объектов в массиве. Объектом является не что иное, как набор блоков, которые связаны горизонтально и/или вертикально.
например
0 1 0 0
0 1 0 0
0 1 1 0
0 0 0 0
0 1 1 0
Ответ: Есть 2 объекта в этом массиве. Объект L-формы и объект в последней строке.
У меня возникли проблемы с алгоритмом, который поймал бы форму «u» (как показано ниже). Как я должен подходить к этому?
0 1 0 1
0 1 0 1
0 1 1 1
0 0 0 0
0 1 1 0
Вы, вероятно, можно использовать [Заливка] (HTTP: // en.wikipedia.org/wiki/Flood_fill), чтобы найти фигуры. Сканирование для (незаметно) 1 и заливка заполняют форму, когда вы ее найдете. – thegrinner
, поэтому диагонали не считаются допустимыми соединениями? –
Нет, это не так. – Lg102