博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode-52-N-Queens II]
阅读量:6282 次
发布时间:2019-06-22

本文共 1368 字,大约阅读时间需要 4 分钟。

Follow up for N-Queens problem.

Now, instead outputting board configurations, return the total number of distinct solutions.

思路:

典型8皇后,回溯法,验证是否能放皇后位置,判断同一列,左上45°和135°方向。

bool isValid(vector
& nQueens, int row, int col, int &n) { for (int i = 0; i < row;i++) { if (nQueens[i][col] == 'Q')return false; } for (int i = row - 1, j = col - 1; i >= 0&&j >= 0;i--,j--) { if (nQueens[i][j] == 'Q')return false; } for (int i = row - 1, j = col + 1; i >= 0&&j < n;i--,j++) { if (nQueens[i][j] == 'Q')return false; } return true; }void totalNQueens(int& n, int row, vector
& nQueens, int& total) { if (row == n) { total += 1; return; } for (int col = 0; col < n;col++) { if (isValid(nQueens, row, col, n)) { nQueens[row][col] = 'Q'; totalNQueens(n, row + 1, nQueens, total); nQueens[row][col] = '.'; } } } int totalNQueens(int n) { vector
nQueens(n, string(n, '.')); int total = 0; totalNQueens(n, 0, nQueens, total); return total; }

 

转载于:https://www.cnblogs.com/hellowooorld/p/6944532.html

你可能感兴趣的文章
所有和Java中代理有关的知识点都汇集于此,速进学干货。
查看>>
开机启动的全过程
查看>>
反向教学系列之——PHP入门(一)
查看>>
微会动微信现场互动:会议会展活动运营管理之年会活动管理技巧
查看>>
css规则
查看>>
芯片制造与金融软件开发公司,采用什么样专业数据存储与备份规划方案
查看>>
linux下安装lnmp
查看>>
vue-cli 教程
查看>>
说说用过的几个远程工具
查看>>
开源项目Bug悬赏任务
查看>>
# python如何学习(二)
查看>>
怎么把图片转换成word?
查看>>
c# webbrowser 实现淘宝天猫链接转为淘宝客链接 有源码
查看>>
CentOS Rsync服务端与Windows cwRsync客户端实现数据同步
查看>>
ASM:ORA-15063 错误处理方法一则
查看>>
什么是Oracle高水位线?"high water mark"或HWM详解
查看>>
详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表
查看>>
android activity ImageView全屏设置
查看>>
linux java 定时任务
查看>>
Linux守护进程(init.d和xinetd)
查看>>