N-Queens II
来源:互联网 发布:java jdk官网下载 编辑:程序博客网 时间:2024/06/17 18:53
N-Queens II
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
代码:
class Solution {public: vector<vector<string>> solveNQueens(int n) { vector<vector<string>>ans; vector<string>path; vector<int>visited(n,-1); dfs(ans,path,0,n,visited); return ans; } bool valid (vector<int>visited) { vector<bool>vis(visited.size(),false); vector<bool>vispos(visited.size()*2+1,false); vector<bool>vissum(visited.size()*2+1,false); for (int i=0; i<visited.size(); i++) { if (visited[i]==-1) continue; if (vis[visited[i]]) return false; vis[visited[i]]=true; if (i>0&&visited[i-1]!=-1) { if (abs(visited[i]-visited[i-1])<=1) return false; } if ((i<(visited.size()-1))&&(visited[i+1]!=-1)) { if (abs(visited[i]-visited[i+1])<=1) return false; } if (vispos[i-visited[i]+visited.size()]) { return false; } vispos[i-visited[i]+visited.size()]=true; if (vissum[i+visited[i]]) { return false; } vissum[i+visited[i]]=true; } return true; } void dfs(vector<vector<string>>&ans,vector<string>&path,int row,int n,vector<int>&visited) { if (row==n) { ans.push_back(path); // visited[row-1]=-1; return ; } string temp(n,'.'); for (int j=0; j<n; j++) { visited[row]=j; if (!valid(visited)) { visited[row]=-1; continue; } temp[j]='Q'; path.push_back(temp); dfs(ans,path,row+1,n,visited); path.pop_back(); temp[j]='.'; } visited[row]=-1; return ; }};
0 0
- N-Queens && N-Queens II
- LeetCode: N-Queens II
- LeetCode : N-Queens II
- [Leetcode] N-Queens II
- N-Queens II
- 【leetcode】N-Queens II
- LeetCode: N Queens II
- [LeetCode]N-Queens II
- N-Queens II
- N-Queens II
- LeetCode - N-Queens II
- LeetCode:N-Queens II
- N-Queens II
- N-Queens II
- 【leetcode】N-Queens II
- LeetCode:N-Queens II
- Leetcode: N-Queens II
- leetcode N-Queens II
- java的正则表达式
- EM算法(期望最大化)——应用:GMM
- git 版本回退
- 用后缀表达式计算四则运算算法
- java一对一生产者消费者多线程练习
- N-Queens II
- Java ThreadLocal使用浅析
- post提交中神秘消失的post数据
- [运维]-Can't init tc log
- GitHub Permission denied(publickey)
- 深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)
- Zabbix3.2 Discovery 自动化监控磁盘IO(iostat)
- SD卡的驱动
- JSON for java总结