N-Queens II
来源:互联网 发布:贝因美积分网络兑换 编辑:程序博客网 时间:2024/06/12 01:06
N 皇后问题。典型的回溯解法。通过维持一个全局数组来记录当前尝试的皇后所在的列和两个对角线是否已经存在其他皇后。注意主对角线标识y-x可能为负,存取时需要加上n.
我们可以通过坐标(x,y)的值来表示对角线。x+y的值标识副对角线,y-x的值标识主对角线。
class Solution {public: void search(int cur,int n,vector<vector<int>>& vis,int &num ){ if(cur>=n) { num++; return; } for(int i=0;i<n;i++){ if(!vis[0][i]&&!vis[1][cur+i]&&!vis[2][cur-i+n]) { vis[0][i]=vis[1][cur+i]=vis[2][cur-i+n]=1; search(cur+1,n,vis,num); vis[0][i]=vis[1][cur+i]=vis[2][cur-i+n]=0; } } } int totalNQueens(int n) { vector<vector<int>> vis(3,vector<int>(2*n,0)); int num=0; search(0,n,vis,num); return num; }};
0 0
- N-Queens && N-Queens II
- LeetCode: N-Queens II
- LeetCode : N-Queens II
- [Leetcode] N-Queens II
- N-Queens II
- 【leetcode】N-Queens II
- LeetCode: N Queens II
- [LeetCode]N-Queens II
- N-Queens II
- N-Queens II
- LeetCode - N-Queens II
- LeetCode:N-Queens II
- N-Queens II
- N-Queens II
- 【leetcode】N-Queens II
- LeetCode:N-Queens II
- Leetcode: N-Queens II
- leetcode N-Queens II
- android Fragment 源码分析
- Linux下find命令详解
- 关于UIView位置信息的总结和CATransform3D初步认识
- C#获取程序运行时间
- C++的多态
- N-Queens II
- 蒟蒻的读入优化模板
- 图片人脸检测 (I)【sample改版 人眼检测】
- 自行车码表
- 页面调度算法——FIFO
- 如何修改vim中tab键的距离
- Android ListView中onItemClickListener事件失效的解决方法
- Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式
- 基本选择工具