Итак, моя цель - написать метод, который решает головоломку судоку, нам дали заглушку метода "public int [] [] solve (int [] [] board)". Мы должны использовать согласованность дуг и разбиение домена , чтобы найти решение.
-Как я начал это делать, создав хэш-карту точек на доске (ключей) и их текущих доменов (инициализированных до 1..9, если не указано) -> HashMap<Point, ArrayList<Integer>> curDomains = new HashMap<Point, ArrayList<Integer>>();
, хотя я не уверен, если это лучшая структура данных для использования.
-Мой вопрос: как мне представить дуги и ограничения? У меня есть псевдокод для алгоритма, но я не знаю, как представить ограничения / дуги в Java. Как лучше всего представить C: набор удовлетворяемых ограничений (которые являются допустимыми местами размещения на доске судоку), а также мои дуги A , где X - это точка, а c это ограничения.
Заранее благодарю за ваши полезные комментарии.