Я вроде понимаю концепцию поиска пути и то, как программа ищет точку B из точки A наиболее эффективным образом и смутно знакома с концепцией A *.Но что, если вместо того, чтобы пытаться найти путь через лабиринт, вы пытаетесь найти самый длинный коридор в закрытом лабиринте, где коридор не может быть по диагонали.
Вот мой пример лабиринта:
1 1 0 1
0 0 1 1
1 0 1 0
1 0 1 0
Если использовать 1 в качестве разрешенного пути и 0 в качестве недопустимого пути, самый длинный путь равен 5 с координатами (0,3), (1,2), (1,3), (2,2), (3,2).
Как бы я нашел эту информацию рекурсивно?
Я ломал голову над тем, как начать с (0,0) и идтивверх, вниз, влево, вправо, чтобы увидеть, возможны ли эти ходы, но любая версия, с которой я столкнулся, сталкивается с дубликатами и повторными подсчетами.