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 AI 实现 问题:将 N 个国际象棋皇后放在 N*N 棋盘上,这样任何皇后都不能互相攻击 蛮力 - 完成 爬山 - 完成 随机波束搜索 - 完成 模拟退火 - 完成 遗传算法 - 完成
MAX_LENGTH/N: 4 STARTING_POPULATION:40 MAX_EPOCHS:1000 最大速度:4.0 MINIMUM_SHUFFLES:8 MAXIMUM_SHUFFLES:20 运行:1 运行时间(以纳秒为单位):38167312 发现时间:1 人口规模:40 更多详情、使用方法...
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 ...
使用受激退火方法来解决代表NP完全问题的N-queen问题。本文包括对 NP 完全问题的简要描述,对使用受激退火方法的详细讨论以及解决 N-queens 问题的演示算法。
Rust 中的 N-Queens 在 Rust 中实现的 n-queens... 请参阅 nqueens.rs 以获得对该算法的更详细的解释,包括对所有位魔法的彻底解释。 对于在 js 中实现的相同算法(大约慢 200 倍),请参阅我的 n-queens.js 存储库。
N-Queens-Visualization:N-Queens解决方案的网页可视化
#n-queens 计数 N-queens 问题的多种实现。 回溯树修剪算法。 按位单线程。 按位并行网络工作者。 分布式按位并行。
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 同时...
生成阴影N-Queens板的简单mathematica代码,您可以使用它来编写通用解决方案,并且提供了一个。 要查看棋盘,请在棋盘上简单地使用 arrayplot。 这是为布朗博士写的,作为 STEP 的一部分。 这里有一些例子。 n = 6...
#n-queens 这是我在学生时代完成的一个项目。 这个项目是与一对合作的。
深度优先搜索n皇后问题 使用 DFS(深度优先搜索)算法解决的 N-Queens 问题
N-Queens N-Queens problem of multi-machine parallel solver. 8 皇后问题在单机上的运算时间是毫秒级,有 92 个解,编程实现之(**注意:目前世界纪录是 N = 26, 研究 N-皇后问题的并行算法,写一个单机多线程...
#n-queens 这是我在学生时代完成的一个项目。 这个项目是与一对合作的。
N皇后问题锈 N-Queens问题的防锈剂。 solve_n_queens(size: usize, initial_queen: (usize, usize)) -> Option<String
( 和我被要求写出一种算法来解决N-Queens问题: n个皇后可以在nxn棋盘上安装多少种不同的方式,以使任何一个皇后都无法在一次动作中击倒另一个? 例如 1x1板,带1个女王: 1种 2×2板2个皇后:没办法 具有3个皇后的...
添加一名作者要运行该程序,只需运行: python nqueens.py该程序是 AE Eiben 和 JE Smith (2007) 第 27 页中描述的 8 皇后问题的 EA 策略的实现。 有趣的参数(参见Constants ): N:棋盘上的皇后数P_RECOMB:重组...
分布式nqueens N-Queens 解决方案计算器使用分布式 CoreOS 机器运行一组 docker 容器单元。