N皇后——简单有效DFS
N皇后
给你一个整数 n
,返回所有不同的 n 皇后问题 的解决方案。
示例:
输入:4
返回值:2
示例:
输入:8
返回值:92
代码:
判断两个皇后冲突:Math.abs(x1 - x2) == Math.abs(y1 - y2)
public class Solution {
int sum;
int a[] = new int[10];
public void dfs(int k, int n) {
if (k == n) { sum++;
return; }
for (int i = 0; i < n; i++) { //遍历k行的n个位置
int j;
for (j = 0; j < k; j++) { //检查冲突
if (a[j] == i || Math.abs(a[j] - i) == Math.abs(k - j)) {
break;
}
}
if (j == k) {
a[k] = i;
dfs(k + 1, n);
}
}
}
public int Nqueen(int n) {
sum = 0;
dfs(0, n);
System.out.println(Arrays.toString(a));
return sum;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)