Недавно я принимал участие в одном Hackathon, и я узнал о проблеме, которая пытается найти шаблон формы сетки в 2d-матрице. Образец может быть U, H и T и будет представлен 3 * 3 матрицы предположим, что если я хочу представить H и U
+--+--+--+ +--+--+--+
|1 |0 |1 | |1 |0 |1 |
+--+--+--+ +--+--+--+
|1 |1 |1 | --> H |1 |0 |1 | -> U
+--+--+--+ +--+--+--+
|1 |0 |1 | |1 |1 |1 |
+--+--+--+ +--+--+--+
Теперь мне нужно искать это в 10*10 matrix containing 0s and 1s
.Closest и только решение я могу получить алгоритм грубой силы O (n ^ 4). В таких языках, как MATLAB и R, есть очень тонкие способы сделать это, но не в C, С++. Я много пробовал искать это решение в Google и на SO.But ближайший, который я могу получить, это SO POST, в котором обсуждается реализация строкового поиска Rabin-Karp алгоритм. Но нет псевдокода или сообщения, объясняющего это. Может ли кто-нибудь помочь или предоставить любую ссылку, PDF или какую-то логику, чтобы упростить это?
ИЗМЕНИТЬ
как Юджин Ш. что N - размер большой матрицы (NxN), а k - малый (kxk), алгоритм buteforce должен принимать O ((Nk) ^ 2). Так как k фиксировано, оно сводится к O (N ^ 2). Да, абсолютно верно. Но существует ли какой-либо обобщенный способ, если N и K большие?