File tree 1 file changed +42
-0
lines changed
1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ from typing import List
2
+
3
+ class Solution :
4
+ """
5
+ 51. N 皇后
6
+ https://leetcode-cn.com/problems/n-queens/
7
+ n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。
8
+ """
9
+ def solveNQueens (self , n : int ) -> List [List [str ]]:
10
+ pie = set ()
11
+ na = set ()
12
+ shu = set ()
13
+ res = []
14
+ tmp = []
15
+ def dfs (row ):
16
+ if row == n :
17
+ res .append (tmp [:])
18
+ return
19
+
20
+ for c in range (n ):
21
+ if c in shu or c + row in pie or row - c in na :
22
+ continue
23
+
24
+ shu .add (c )
25
+ pie .add (row + c )
26
+ na .add (row - c )
27
+ l = ['.' for i in range (n )]
28
+ l [c ] = 'Q'
29
+ tmp .append ('' .join (l ))
30
+ dfs (row + 1 )
31
+ tmp .pop ()
32
+ shu .remove (c )
33
+ pie .remove (row + c )
34
+ na .remove (row - c )
35
+
36
+
37
+ dfs (0 )
38
+ return res
39
+
40
+
41
+ so = Solution ()
42
+ print (so .solveNQueens (3 ))
You can’t perform that action at this time.
0 commit comments