[LeetCode] N-Queens
2014-12-03 15:18
253 查看
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.
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
indicate a queen and an empty space respectively.
For example,
There exist two distinct solutions to the 4-queens puzzle:
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> > ans; vector<string> v; int *col; string s; vector<vector<string> > solveNQueens(int n) { for(int i = 0;i < n;i ++) s.push_back('.'); col = new int ; generate(n,0); return ans; } void generate(int n,int dep){ if(dep == n){ ans.push_back(v); return; } for(int i = 0;i < n;i ++){ if(check(dep,i)){ string ss = s; ss[i] = 'Q'; v.push_back(ss); generate(n,dep + 1); v.pop_back(); col[dep] = -1; } } } bool check(int k,int i){ col[k] = i; for(int i = 0;i < k;i ++) if(col[i] == col[k] || abs(col[i] - col[k]) == abs(i - k)) return false; return true; } };
相关文章推荐
- LeetCode51 N-Queens
- LeetCode-51. N-Queens和LeetCode-52. N-Queens II
- N皇后回溯解法 leetcode N-Queens
- 【LeetCode】N-Queens
- LeetCode 51. N-Queens
- Leetcode: N-Queens
- [LeetCode] N-Queens
- leetcode-N-Queens 搜索
- leetcode N-Queens
- Leetcode 51. N-Queens (Hard) (cpp)
- N-Queens [Leetcode解题报告]
- leetcode: N-Queens
- 129_leetcode_N-Queens
- 【leetcode】N-Queens I & II
- N-Queens leetcode java
- LeetCode 51. N-Queens(N皇后)
- LeetCode Online Judge 题目C# 练习 - N-Queens
- Leetcode -- N-Queens
- leetcode: N-Queens
- leetcode—N-Queens系列