LeetCode(N-Queens)
来源:互联网 发布:matlab2015b for mac 编辑:程序博客网 时间:2024/05/16 10:17
N-Queens
深搜:
class Solution {public: vector<vector<string> > solveNQueens(int n) { vector<vector<string> > result; vector<int> path; dfs(n,result,path,0); return result; } void dfs(int n,vector<vector<string> > &result,vector<int> &path,int i) { if(i==n) { vector<string> res; for(int j=0;j<n;++j) { string s(n,'.'); s[path[j]]='Q'; res.push_back(s); } result.push_back(res); return; } for(int j=0;j<n;++j) { path.push_back(j); if(isValid(path,i))dfs(n,result,path,i+1); path.pop_back(); } } bool isValid(vector<int> &path,int i) { for(int j=0;j<i;++j) { if(path[i]==path[j]||abs(i-j)==abs(path[i]-path[j]))return false; } return true; } };
N-Queens II
深搜:
class Solution {public: int totalNQueens(int n) { int result=0; vector<int> path; dfs(n,result,path,0); return result; } void dfs(int n,int &result,vector<int> &path,int i) { if(i==n) { ++result; return; } for(int j=0;j<n;++j) { path.push_back(j); if(isValid(path,i))dfs(n,result,path,i+1); path.pop_back(); } } bool isValid(vector<int> &path,int i) { for(int j=0;j<i;++j) { if(path[i]==path[j]||abs(i-j)==abs(path[i]-path[j]))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
- nginx
- Rust猜数字之循环
- Mybatis源代码分析之类型转换
- 方程也是一种类
- WIN7、WIN8打开命令行Cmd窗口
- LeetCode(N-Queens)
- 第七周项目一实现复数类中的运算符重载1
- win8 将用户添加到用户组的方法
- socket示例
- C#生产者消耗者
- 【开发者利器】15 款 jQuery 社交分享插件
- 网页表格的制作
- vc禁用win键、alt+tab键
- 关闭本页后还要执行的操作