【Leetcode】51. N-Queens(回溯)
来源:互联网 发布:网络电视 百度云 编辑:程序博客网 时间:2024/06/02 03:07
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.."]]
class Solution {private: vector<vector<string>> key;public: vector<vector<string>> solveNQueens(int n) { vector<int> vi(n); solveNQueens(vi,0,n); return key; } bool isSuit(int curIndex, int val ,int n, vector<int> &a){ if(curIndex<n){ for(int i=0;i<curIndex;i++){ if(a[i]==val||(a[i]-val)==(i-curIndex)||(a[i]-val)==(curIndex-i)) return false; } return true; } else return false; } void solveNQueens(vector<int> &vi,int c,int n) { if(c==n){ vector<string> s(n,string(n,'.')); for(int i=0;i<n;i++){ s[i][vi[i]]='Q'; } key.push_back(s); return; } for(vi[c] = 0; vi[c] < n; ++ vi[c]) if(isSuit(c,vi[c],n,vi)) solveNQueens(vi, c + 1,n); }};
1 0
- 【Leetcode】51. N-Queens(回溯)
- LeetCode 51. N-Queens 回溯
- leetcode---N-Queens---回溯
- 51.leetcode N-Queens(hard)[递归回溯剪枝]
- leetcode 51. N-Queens 回溯算法的应用
- LeetCode OJ - N-Queens 回溯法
- leetcode 51 N-Queens 回溯 万能结构
- LeetCode 51. N-Queens(N皇后)
- 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
- Spark的日志配置
- CCF——命令行选项
- POJ 1141 - Brackets Sequence
- java protected访问权限
- 配置phpMyAdmin管理MySQL/MariaDB
- 【Leetcode】51. N-Queens(回溯)
- 153. Find Minimum in Rotated Sorted Array
- 模板方法设计模式
- ubuntu 16.04 完全卸载和重装mysql 5.7
- 分布式云盘环境搭建
- CentOS 7关闭firewalld启用iptables
- handler机制的原理
- Android网络请求处理异步回调风险方案
- 【数据结构】位图