leetcode-51. N-Queens
来源:互联网 发布:windows jenkins 编辑:程序博客网 时间:2024/05/16 04:44
考察点:回溯,递归,矩阵处理;
思路:先将一个矩阵都置为’.’然后开始针对第i行递归,满足row==n条件push_back;然后针对第i行,一次判断第j列是否valid。
C++代码:
class Solution {public: vector<vector<string>> solveNQueens(int n) { using namespace std; vector<vector<string>> ret; vector<string> nQueens(n,string(n, '.')); solveNqueens(ret, nQueens, 0, n); return ret; } void solveNqueens(vector<vector<string>> &ret, vector<string> & nQueens, int row, int n) { if (row == n) { ret.push_back(nQueens); return ; } for (int col = 0; col <n; col++) { if (isValid(nQueens, row, col, n)) { nQueens[row][col] = 'Q'; solveNqueens(ret, nQueens, row+1, n); nQueens[row][col] = '.'; } } } bool isValid(vector<string>& nQueens, int row, int col, int n) { for(int i=0; i!=row; i++) { if (nQueens[i][col] == 'Q') return false; } for (int i=row-1, j=col-1; i>=0&&j>=0; i--,j--) { if (nQueens[i][j] == 'Q') return false; } for (int i=row-1, j=col+1; i>=0&&j<n; i--,j++) { if (nQueens[i][j] == 'Q') return false; } return true; }};
阅读全文
0 0
- LeetCode 51. N-Queens
- LeetCode --- 51. N-Queens
- LeetCode 51.N-Queens
- [Leetcode] 51. N-Queens
- [leetcode] 51.N-Queens
- [leetcode] 51. N-Queens
- LeetCode 51. N-Queens
- leetcode 51. N-Queens
- 【LeetCode】51. N-Queens
- leetcode 51. N-Queens
- LeetCode 51. N-Queens
- LeetCode 51. N-Queens
- leetcode.51. N-Queens
- Leetcode 51. N-Queens
- LeetCode 51. N-Queens
- [LeetCode] 51. N-Queens
- leetcode 51. N-Queens
- leetcode-51. N-Queens
- CUDA系列学习(三)GPU设计与结构QA & coding练习
- java swing设置窗体无边框后鼠标还能拖动窗体的方法
- CUDA系列学习(四)Parallel Task类型 与 Memory Allocation
- CUDA系列学习(五)GPU基础算法: Reduce, Scan, Histogram
- python卸载没卸载干净导致再次安装失败
- leetcode-51. N-Queens
- POJ 3744-Scout YYF I (概率DP+矩阵快速幂)
- spring的service类调用自己方法事务无效
- CentOS 安装 apache tomcat
- IT人士必去的10个网站
- 二进制中1的个数
- [公开课笔记]线性autoencoder和FM的关系
- 学会自己给RecyclerView添加Header、Footer和加载更多回调
- CUDA从入门到精通