Update
This commit is contained in:
@@ -7,46 +7,28 @@
|
||||
<p align="center"><strong>欢迎大家<a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
|
||||
|
||||
|
||||
## 第51题. N皇后
|
||||
# 第51题. N皇后
|
||||
|
||||
[力扣题目链接](https://leetcode-cn.com/problems/n-queens/)
|
||||
|
||||
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。
|
||||
n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。
|
||||
|
||||
上图为 8 皇后问题的一种解法。
|
||||

|
||||
给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。
|
||||
|
||||
给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。
|
||||
每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。
|
||||
|
||||
每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。
|
||||
示例 1:
|
||||
|
||||
示例:
|
||||

|
||||
|
||||
输入: 4
|
||||
* 输入:n = 4
|
||||
* 输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]
|
||||
* 解释:如上图所示,4 皇后问题存在两个不同的解法。
|
||||
|
||||
输出:
|
||||
|
||||
解法 1
|
||||
|
||||
[
|
||||
[".Q..",
|
||||
"...Q",
|
||||
"Q...",
|
||||
"..Q."],
|
||||
|
||||
解法 2
|
||||
|
||||
["..Q.",
|
||||
"Q...",
|
||||
"...Q",
|
||||
".Q.."]
|
||||
]
|
||||
|
||||
解释: 4 皇后问题存在两个不同的解法。
|
||||
|
||||
提示:
|
||||
> 皇后,是国际象棋中的棋子,意味着国王的妻子。皇后只做一件事,那就是“吃子”。当她遇见可以吃的棋子时,就迅速冲上去吃掉棋子。当然,她横、竖、斜都可走一到七步,可进可退。(引用自 百度百科 - 皇后 )
|
||||
示例 2:
|
||||
|
||||
* 输入:n = 1
|
||||
* 输出:[["Q"]]
|
||||
|
||||
## 思路
|
||||
|
||||
@@ -71,7 +53,7 @@ n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并
|
||||
|
||||
那么我们用皇后们的约束条件,来回溯搜索这颗树,**只要搜索到了树的叶子节点,说明就找到了皇后们的合理位置了**。
|
||||
|
||||
## 回溯三部曲
|
||||
### 回溯三部曲
|
||||
|
||||
按照我总结的如下回溯模板,我们来依次分析:
|
||||
|
||||
@@ -178,8 +160,6 @@ bool isValid(int row, int col, vector<string>& chessboard, int n) {
|
||||
|
||||
那么按照这个模板不难写出如下C++代码:
|
||||
|
||||
## C++代码
|
||||
|
||||
```CPP
|
||||
class Solution {
|
||||
private:
|
||||
@@ -247,7 +227,7 @@ public:
|
||||
## 其他语言补充
|
||||
|
||||
|
||||
Python:
|
||||
### Python
|
||||
|
||||
```python
|
||||
class Solution:
|
||||
@@ -296,7 +276,7 @@ class Solution:
|
||||
return res
|
||||
```
|
||||
|
||||
Java:
|
||||
### Java
|
||||
|
||||
```java
|
||||
class Solution {
|
||||
@@ -366,7 +346,7 @@ class Solution {
|
||||
```
|
||||
|
||||
|
||||
Go:
|
||||
### Go
|
||||
```Go
|
||||
import "strings"
|
||||
var res [][]string
|
||||
@@ -433,8 +413,7 @@ func solveNQueens(n int) [][]string {
|
||||
return res
|
||||
}
|
||||
```
|
||||
|
||||
Javascript:
|
||||
### Javascript
|
||||
```Javascript
|
||||
var solveNQueens = function(n) {
|
||||
function isValid(row, col, chessBoard, n) {
|
||||
|
||||
Reference in New Issue
Block a user