[LeetCode] N-Queens
来源:互联网 发布:日本爱知电机 编辑:程序博客网 时间:2024/06/05 03:50
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 '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[n]; 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; }};
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
- Android 开发自定义View
- 行百里者半九十 新疆属于哪一半?
- How to Update SQL and benchmark with ADE
- solr进阶一:java代码添加索引和增加IKAnalyzer分词支持
- Chrome内核解析 -- 背景篇:绘制(Painting)
- [LeetCode] N-Queens
- puppet 搭建
- 在Visual Studio 2013中使用ArcGIS Engine 10.2 工具
- DB2 SQL0613N 标识的主键、唯一键或表分区键太长或者包含太多的列和时间段。
- win7下FTP服务器的搭建
- hadoop 2.2 hbase "Unable to load native-hadoop library for your platform" 问题解决
- Linux命令(10):cat命令
- swap交换分区
- android客户端与服务器端交互 如何保持session