N-Queens II——Leetcode
2024-10-19 03:35:27
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
计算N皇后的合法解的数量。
解题思路:这次使用了更优化的方式判断棋盘上的冲突,abs(curr.row-row)==abs(curr.col-col)
board数组纪录每行的列的位置,如board[1]=3,代表第一行第三列上有皇后。
public class Solution { int[] board;
int res = 0;
public int totalNQueens(int n) {
board = new int[n];
helper(0,n);
return res;
} private void helper(int k,int n){
if(k>=n){
res++;
return;
}
for(int i=0;i<n;i++){
if(valid(k,i)){
board[k]=i;
helper(k+1,n);
}
}
return ;
} private boolean valid(int x, int y){
int row = 0;
while(row<x){
if(board[row]==y||Math.abs(x-row)==Math.abs(y-board[row])){
return false;
}
row++;
}
return true;
}
}
最新文章
- [POJ1765]November Rain
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
- easyui form 方式提交数据
- c# 正则表达式 匹配回车
- windows上配置git
- 第一节 MongoDB介绍及下载与安装
- 标签云 - jqcloud 用法
- IIS 之 启用日志记录
- php实现分页,上一页下一页
- 《Clean Code》重点内容总结
- sql 查看语句的性能
- white-space详解
- 再学习之MyBatis
- Ocelot中文文档-日志
- FAT32格式和NTFS格式区别
- JMeter&#160;http(s)测试脚本录制器的使用
- cors与jsonp
- 使用Jmeter(三十)针对ActiveMQ JMS POINT TO POINT压力测试(转载)
- / | \ # $ ^ &; *这些符号怎么读
- springboot根据不同的条件创建bean,动态创建bean,@Conditional注解使用
热门文章
- codevs 1170 双栈排序
- 每次打开VS2010都会报“ devenv.exe -Assert Failure”这个错误
- (转)if语句优化
- VS2010在WIN7 64位系统下架设网站及路由器配置
- 使用Xcode插件,让iOS开发更加便捷
- list-style-type -- 定义列表样式
- C# ToString常用技巧总结
- 用css3实现鼠标移进去当前亮其他变灰
- linux系统删除空间后系统分区空间仍不释放问题
- I题 - A+B for Input-Output Practice (VIII)