思路:依旧全排列
如果这题没有对角线的限制,本题方案数是一个全排列! Q(n×n)=n!
因为考虑每行放一个,总共放n行,那么想要位置合法,列数一定要是一个n的全排列。
而本题唯一区别在于:有主副对角线限制。做了这么多回溯题,不难想到直接在递归的过程中满足这些限制即可。
接下来考虑主对角线限制:
P4075.N皇后
Leetcode 51.N皇后-原题链接
题目内容
按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。
n皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。
给你一个整数 n ,返回所有不同的 n 皇后问题的解决方案。
每一种解法包含一个不同的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。
输入描述
输入只有一行,包含一个整数 n。
输出描述
输出所有不同的解决方案,每个方案占 n 行,每行有 n 个字符('Q' 或 '.'),方案之间用一个空行分隔。
注意:方案的输出顺序不限,但每个方案内部的行顺序必须严格从上到下。
样例1
输入
4
输出
.Q..
...Q
Q...
..Q.
..Q.
Q...
...Q
.Q..

说明
如上图所示,4 皇后问题存在两个不同的解法。
样例2
输入
1
输出
Q
提示:
- 1<=n<=9