LeetCode N-Queens
来源:互联网 发布:shake it 下载 编辑:程序博客网 时间:2024/05/19 00:43
又是一个八皇后问题:
Given an integer n, return all distinct solutions to the n-queens puzzle.
Each solution contains a distinct board configuration of the n-queens' placement, where 'Q'
and '.'
both indicate a queen and an empty space respectively.
For example,
There exist two distinct solutions to the 4-queens puzzle:
[ [".Q..", // Solution 1 "...Q", "Q...", "..Q."], ["..Q.", // Solution 2 "Q...", "...Q", ".Q.."]]
class Solution {public: vector<vector<string> > solveNQueens(int n) { this->N=n; memset(matrix,0,sizeof(matrix)); dfs(0); return d; } int check(int x,int y) { for(int j=0;j<y;++j) if(matrix[x][j]==1)return 0; for(int i=0;i<N;++i) for(int j=0;j<y;++j) { if(abs(i-x)==abs(j-y)&&matrix[i][j]==1)return 0; } return 1; } void dfs(int j) { if(j==N) { //存储 vector<string>mt; for(int i=0;i<N;++i){ string td; for(int j=0;j<N;++j) { if(matrix[i][j]==0)td+='.'; if(matrix[i][j]==1)td+='Q'; } mt.push_back(td); } d.push_back(mt); return ; } for(int i=0;i<N;++i) { if(matrix[i][j]==0&&check(i,j)) { matrix[i][j]=1; dfs(j+1); matrix[i][j]=0; } } }private : int N; vector<vector<string> > d; int matrix[100][100];};
0 0
- 【LeetCode】N-Queens && N-Queens II
- leetcode N-Queens & N-Queens II
- Leetcode: N-Queens && N-Queens II
- 【Leetcode】【python】N-Queens/N-Queens II
- LeetCode: N-Queens II
- LeetCode: N-Queens
- LeetCode : N-Queens
- LeetCode : N-Queens II
- [Leetcode] N-Queens II
- leetcode 72: N-Queens
- LeetCode 38: N-Queens
- 【leetcode】N-Queens II
- 【leetcode】N-Queens
- LeetCode: N Queens II
- [LeetCode]N-Queens
- [LeetCode]N-Queens II
- [leetcode]N-Queens
- [LeetCode] Anagrams、N-Queens
- C#中的委托和事件
- HDOJ1160 FatMouse's Speed[dp](最长上升子序列)
- 神器 VisuAlgo:通过动画学习算法和数据结构
- Unicode、UTF-8 和 ISO8859-1到底有什么区别(精品)
- JSP程序设计
- LeetCode N-Queens
- iOS UITableViewDelegate UITableViewDataSource 执行顺序
- 数据结构概述<3>链表的简单应用
- 听说可以用Word发博客了
- 关于C++ const 的全面总结
- unity之属性封装,继承
- GUID格式化
- hdu 5125 magic balls
- 使用C#绘制光谱反射率曲线