Ребята, решил задачу на хакерранк
Хотел у вас спросить, можно ли было оптимальней ?
https://www.hackerrank.com/challenges/the-grid-search/problemВообщем, имплементация следующая:
1. считаю сумму первой строки в паттерне (в числовом эквиваленте)
2. заполняю массив из сумм паттерна по строкам
3. создаю аналогичный массив из чаров, только преобразованных в интежер
4. делаю деревья строк, имеющие следующий вид:
struct Grid_Leaf {
long n;
long sum_last_n;
bool is_root;
int depth;
Grid_Leaf* prev;
Grid_Leaf* next;
int row;
};
прохожу по всей матрице и создаю дерево, состоящее из n(кол-во строк в матрице) ветвей 1 уровня, рут - 0 уровня.
считаю сумму sum_last_n элементов
если она совпадает с суммой первой строки в паттерне, то записываю это как потеншиал матчер
и потом уже прохожу по всем потеншиал матчерам и строка за строкой используя дерево сравниваю необходимые коламны....