Leetcode: N-Queens
来源:互联网 发布:avision扫描仪软件 编辑:程序博客网 时间:2024/06/06 22:10
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.."]]
搞到很久,一个变量写错了,总是报Memory Limit Exceeded,郁闷。
class Solution {public: vector<vector<string> > solveNQueens(int n) { solveNQueensUtil(0, n); return result; } void solveNQueensUtil(int step, int n) { if (step == n) { print(n); return; } for (int i = 0; i < n; ++i) { cols.push_back(i); if (canPutQueen(step)) { solveNQueensUtil(step + 1, n); } cols.pop_back(); } } bool canPutQueen(int step) { for (int i = 0; i < step; ++i) { if (cols[step] == cols[i] || abs(step - i) == abs(cols[step] - cols[i])) { return false; } } return true; } void print(int n) { vector<string> solve; for (int i = 0; i < n; ++i) { string line; for (int j = 0; j < n; ++j) { line.push_back(cols[i] == j ? 'Q' : '.'); } solve.push_back(line); } result.push_back(solve); } private: vector<int> cols; vector<vector<string> > result;};
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
- 设计模式介绍之四:模板方法(Template Method)模式
- 基于颜色直方图的搜索
- C++标准库
- Spring3.0 详解
- webx—Session框架详解
- Leetcode: N-Queens
- CentOS6.5安装nginx1.5.8时出现“cp: "conf/koi-win" 与"/usr/local/nginx/conf/koi-win" 为同一文件”的解决方法
- Ubuntu操作基本快捷键
- 程序员面试宝典(三)P107
- STM32的串口采用DMA方式接收数据测试
- Android延时执行的几种方法
- windows下配置gvim
- 炜哥当年的作业1
- 【数据结构】线性循环队列