lintcode: N-Queens
来源:互联网 发布:花椒刷人气软件 编辑:程序博客网 时间:2024/06/15 18:42
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.
class Solution {public: /** * Get all distinct N-Queen solutions * @param n: The number of queens * @return: All distinct solutions * For example, A string '...Q' shows a queen on forth position */ vector<vector<string> > res; void dfs(vector<int> &solution,int n,int cur){ if(cur==n){ string str=""; for(int i=0;i<n;i++){ str+='.'; } vector<string> vec; for(int i=0;i<n;i++){ string tmp=str; tmp[solution[i]]='Q'; vec.push_back(tmp); } res.push_back(vec); return; } for(int i=0;i<n;i++){ solution.push_back(i); bool ok=true; for(int j=0;j<cur;j++){ if(i==solution[j]|| (cur+i)==(j+solution[j])|| (cur-i)==(j-solution[j])){ ok=false; break; } } if(ok){ dfs(solution,n,cur+1); solution.pop_back(); }else{ solution.pop_back(); } } } vector<vector<string> > solveNQueens(int n) { // write your code here vector<int> solution; dfs(solution,n,0); return res; }};
0 0
- lintcode: N-Queens
- [Lintcode]N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- N-queens
- N-Queens
- N-Queens
- N-Queens
- N-Queens
- imx6设备树pinctrl解析
- 区间DP 矩阵相乘复杂度计算
- Rational Rose
- “permission is only granted to system apps ” eclipse 调试修改
- Linux 2.6 调度系统分析
- lintcode: N-Queens
- Linux shell 之 提取文件名和目录名的一些方法
- 在WinDBG中, 使用.shell命令来搜索字符串
- html展示 pdf 利器
- 【搞机】9.7英寸iPad Pro 上手开箱(图文)
- linux环境下 C++性能测试工具 gprof + kprof + gprof2dot
- 在退出按钮上添加弹出选择对话框
- VC++的UNICODE工程和多字节字符集的HTTP请求
- Cordova官方插件 -- Vibration、Media、NativeAudio