N-Queens 题解
来源:互联网 发布:淘宝网秋冬运动套装 编辑:程序博客网 时间:2024/05/29 08:22
题目
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.
Difficulty: Hard
分析
跟上一道题 N-Queens II实际上是一模一样的,只是多了一个需要保存解的要求,详细分析见我的上篇博客:N-Queens II 经典问题:8皇后问题 题解
这里直接给出代码:
class Solution {private: vector<vector<string>> ret; vector<int> queen;public: bool CheckPlace(int Checkline, int Checkrow) { for (int i = 0; i < Checkline; i++) { if (queen[i] == Checkrow || abs(Checkline - i) == abs(Checkrow - queen[i])) { return false; } } return true; } void PlaceQueen(int Checkline, int n) { if (Checkline == n) { vector<string> curr(n, string(n, '.')); for (int i = 0; i < queen.size(); i++) { curr[i][queen[i]] = 'Q'; } ret.push_back(curr); return; } else { for (int i = 0; i < n; i++) { if (CheckPlace(Checkline, i)) { queen[Checkline] = i; PlaceQueen(Checkline + 1, n); } } } } vector<vector<string>> solveNQueens(int n) { queen.resize(n); PlaceQueen(0, n); return ret; }};
0 0
- N-Queens 题解
- Lintcode33 N-Queens solution 题解
- LeetCode 51. N-Queens 题解
- LeetCode题解:N-Queens I and II
- Leetcode题解(7)L51/N-Queens
- LeetCode 题解(104): N-Queens
- LeetCode 题解(105): N-Queens II
- Lintcode34 N-Queens II solution 题解
- N-Queens II 经典问题:8皇后问题 题解
- LeetCode 52. N-Queens II 题解(C++)
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- [LeetCode]164. Maximum Gap
- jQuery13(相对元素的练习)
- 如何成为一个技术大牛
- 机器学习基石笔记-感知机
- linux下fdisk建盘
- N-Queens 题解
- [Algorithm]Maze Prim算法与A*寻路算法(中)
- poj 2983 Is the Information Reliable?(差分约束)
- java的几种对象(PO,VO,DAO,BO,POJO)解释
- 传智播客168期JavaEE就业班(第五天 xml约束与解析)
- Hadoop中空间数据的存储(二)
- 【Python 笔记】神奇的匿名函数
- 如何处理大量数据并发操作
- 如何优化tomcat配置(从内存、并发、缓存4个方面)优化