The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.
Given an integer n, return all distinct solutions to the n-queens puzzle.
Each solution contains a distinct board configuration of the n-queens' placement, where 'Q'
and '.'
both indicate a queen and an empty space respectively.
For example,
There exist two distinct solutions to the 4-queens puzzle:
[ [".Q..", // Solution 1 "...Q", "Q...", "..Q."], ["..Q.", // Solution 2 "Q...", "...Q", ".Q.."] ]
public class Solution { public List<String[]> solveNQueens(int n) { List<String[]> res = new ArrayList<String[]>(); solve(0, n, new int[n], res); return res; } private void solve(int i, int n, int[] positions, List<String[]> list) { if (i == n) { String[] result = new String[n]; for (int k = 0; k < n; k++) { StringBuffer sb = new StringBuffer(); for (int j = 0; j < n; j++) { if (j == positions[k]) sb.append('Q'); else sb.append('.'); } result[k] = sb.toString(); } list.add(result); } else { for (int j = 0; j < n; j++) { positions[i] = j; if (validate(i, positions)) { solve(i+1, n, positions, list); } } } } private boolean validate(int maxRow, int[] positions) { for (int i = 0; i < maxRow; i++) { if (positions[i] == positions[maxRow] || Math.abs(positions[i] - positions[maxRow]) == maxRow - i) return false; } return true; } }
相关推荐
在"N-Queens-with-Simulated-Annealing-master"压缩包中,可能包含以下文件和目录: - `src`:源代码目录,可能有`Main.java`作为主程序入口,以及其他类如`Board.java`(棋盘类)、`QueenSolver.java`(模拟退火...
N-Queens AI 实现 问题:将 N 个国际象棋皇后放在 N*N 棋盘上,这样任何皇后都不能互相攻击 蛮力 - 完成 爬山 - 完成 随机波束搜索 - 完成 模拟退火 - 完成 遗传算法 - 完成
js js_leetcode题解之52-n-queens-II.js
MAX_LENGTH/N: 4 STARTING_POPULATION:40 MAX_EPOCHS:1000 最大速度:4.0 MINIMUM_SHUFFLES:8 MAXIMUM_SHUFFLES:20 运行:1 运行时间(以纳秒为单位):38167312 发现时间:1 人口规模:40 更多详情、使用方法...
js js_leetcode题解之51-n-queens.js
在本资源包中,我们关注的是使用Python编程语言实现遗传算法来解决经典的“n-queens问题”。这个问题要求在n×n的棋盘上放置n个皇后,使得每个皇后都不能攻击到其他任何一个皇后(即不能处于同一行、同一列或同一对...
n-queens-visualizer, 在反应&通量中,对N 皇后问题可视化的解决 n局部搜索算法的可视化探索queens皇后问题的解。 反应岩石的特征。查看实况:https://haseeb-qureshi.github.io/n-queens-visualizer 用不同的局部...
In this project, you are going to construct a CSP for N-Queens problem. You will be given several python files. Files to Edit and Submit: You will fill in portions of submission.py during the ...
Tabu Search(禁忌搜索)是一种全局优化算法,由 Fred Glover 在1989年提出,用于解决复杂的组合优化问题,如旅行商问题(TSP)和n-Queens问题。它通过在搜索过程中避免近期已探索过的解决方案,以跳出局部最优解,...
在"n-queens-master"压缩包中,可能包含了上述几种实现的源代码,供学习者参考和研究。通过分析和理解这些代码,可以深入理解N-Queens问题的解决策略,提升JavaScript编程和算法设计能力。同时,也可以根据实际需求...
Rust 中的 N-Queens 在 Rust 中实现的 n-queens... 请参阅 nqueens.rs 以获得对该算法的更详细的解释,包括对所有位魔法的彻底解释。 对于在 js 中实现的相同算法(大约慢 200 倍),请参阅我的 n-queens.js 存储库。
2. **JavaScript文件**:实现N-Queens问题的逻辑,可能有`nqueens.js`或类似的文件,用于生成和检查皇后的位置,以及更新棋盘的视觉表示。 3. **CSS文件**:样式表,如`styles.css`,用于定义棋盘、皇后和其他元素...
NQueens N-Queens 问题是更流行的 Queens 问题的扩展 ##基准 尺寸 是时候找到第一个解决方案了 8-皇后 0.19s 用户 0.09s 系统 127% cpu 总计 0.222 12-皇后 0.21s 用户 0.11s 系统 129% cpu 总计 0.244 16-皇后...
Javascript N-Queens 一个使用非常简单的遗传算法解决 N-Queens 问题的 Javascript 程序。 演示 在线
#n-queens 这是我在学生完成的一个项目。 我的这个项目的合作伙伴是 Benjamin Zarzycki。 任务是创建一个程序,该程序可以解决用户输入的任何给定n的。 为了改变任务,我们还添加了使用多个 HTML5 Web Worker 同时...
NQueens nQueens = new NQueens(8); List<List<Integer>> solutions = nQueens.solveNQueens(); for (List<Integer> solution : solutions) { System.out.println(solution); } } } ``` 在这个代码中,我们...
生成阴影N-Queens板的简单mathematica代码,您可以使用它来编写通用解决方案,并且提供了一个。 要查看棋盘,请在棋盘上简单地使用 arrayplot。 这是为布朗博士写的,作为 STEP 的一部分。 这里有一些例子。 n = 6...
在“n-queens-master”这个项目中,除了算法实现,还可能包含了测试用例、日志记录和性能优化等方面的内容。测试用例用于验证算法的正确性,确保在不同规模的棋盘上都能得到正确的结果。日志记录则帮助我们跟踪算法...
#n-queens 这是我在学生时代完成的一个项目。 这个项目是与一对合作的。
N-Queens N-Queens problem of multi-machine parallel solver. 8 皇后问题在单机上的运算时间是毫秒级,有 92 个解,编程实现之(**注意:目前世界纪录是 N = 26, 研究 N-皇后问题的并行算法,写一个单机多线程...