Сохранение того же направления при просмотре массива java 2D - PullRequest
0 голосов
/ 25 февраля 2020

Итак, я создаю класс для поиска слов в массиве 2D java, следуя стратегии Trie / prefix. Я нахожусь в точке, где мне нужно просматривать соседние ячейки моей текущей ячейки в разных направлениях, используя массивы строк / столбцов.

int[] row = { -1, -1, -1, 0, 0, 1, 1, 1 };
int[] col = { -1, 0, 1, -1, 1, -1, 0, 1 };

for (Map.Entry<Character, Node> eS: n.value.entrySet())
    {
        // verify the 8 different directions of my current cell
        for (int k = 0; k < 8; k++)
        {
            // skip if the cell is invalid, already visited, or doesn't follow a path
            int x = i + row[k]; 
            int y = j + col[k]; 
            if ((x >= 0 && x < this.length) && (y >= 0 && y < this.length) && !visited[x][y] && (this.grid[x][y] == eS.getKey())) {
                findWords(entry.getValue(), i + row[k], j + row[k], visited, path + eS.getKey(), res);
            }                   
        }
    }

Моя проблема с этим решением заключается в том, что после первого шага просмотр может проходить в разных направлениях, в то время как я хочу, чтобы он сохранял то же направление, что и на первом шаге (либо горизонтально l> rr> l , то же самое для вертикали и диагонали в направлении 4, но не в разных направлениях одновременно).

Любое предложение / помощь будет более чем приветствоваться.

...