本文共 986 字,大约阅读时间需要 3 分钟。
题目
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。
给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。
每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。
示例:
输入:
4输出:
2解释
[[".Q..", // 解法 1 "...Q", "Q...", "..Q."], ["..Q.", // 解法 2 "Q...", "...Q", ".Q.."]]
4 皇后问题存在两个不同的解法。
提示:
皇后彼此不能相互攻击,也就是说:任何两个皇后都不能处于同一条横行、纵行或斜线上。解法:
代码:
#include#include #include using namespace std;class Solution { public: int totalNQueens(int n) { int ans = 0; vector > vis(n,vector (n,0)); dfs(0,n,ans,vis); return ans; } void dfs(int row,int n,int &ans,vector > &vis){ if(row > n){ return;} if(row==n){ ans++;return;} for(int col=0;col
今天也是爱zz的一天哦!
转载地址:http://umdsn.baihongyu.com/