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;
}
}

最新文章

  1. [POJ1765]November Rain
  2. 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
  3. easyui form 方式提交数据
  4. c# 正则表达式 匹配回车
  5. windows上配置git
  6. 第一节 MongoDB介绍及下载与安装
  7. 标签云 - jqcloud 用法
  8. IIS 之 启用日志记录
  9. php实现分页,上一页下一页
  10. 《Clean Code》重点内容总结
  11. sql 查看语句的性能
  12. white-space详解
  13. 再学习之MyBatis
  14. Ocelot中文文档-日志
  15. FAT32格式和NTFS格式区别
  16. JMeter&#160;http(s)测试脚本录制器的使用
  17. cors与jsonp
  18. 使用Jmeter(三十)针对ActiveMQ JMS POINT TO POINT压力测试(转载)
  19. / | \ # $ ^ &amp; *这些符号怎么读
  20. springboot根据不同的条件创建bean,动态创建bean,@Conditional注解使用

热门文章

  1. codevs 1170 双栈排序
  2. 每次打开VS2010都会报“ devenv.exe -Assert Failure”这个错误
  3. (转)if语句优化
  4. VS2010在WIN7 64位系统下架设网站及路由器配置
  5. 使用Xcode插件,让iOS开发更加便捷
  6. list-style-type -- 定义列表样式
  7. C# ToString常用技巧总结
  8. 用css3实现鼠标移进去当前亮其他变灰
  9. linux系统删除空间后系统分区空间仍不释放问题
  10. I题 - A+B for Input-Output Practice (VIII)