当前位置:网站首页>leetcode:面试题 08.12. 八皇后【dfs + backtrack】
leetcode:面试题 08.12. 八皇后【dfs + backtrack】
2022-06-22 06:36:00 【白速龙王的回眸】

分析
定义一个函数生成当前queens的结果
然后queens用来记录每行的queen分别在什么位置
backtrack用来记录当前第i行的queen的位置在哪
如果当前i = n就可以加入最终的结果了
否则开始遍历每个j,如果当前的ij满足cols diag1 和 diag2就可以取这个j
然后设定queen 并加入三个set
然后dfs下一层 再回溯为之前的set 再遍历下一个j
ac code
class Solution:
def solveNQueens(self, n: int) -> List[List[str]]:
# backtrack + set
row = ['.'] * n
queens = [-1] * n
cols, diag1, diag2 = set(), set(), set()
ans = []
def generateBoard():
board = []
for i in range(n):
row[queens[i]] = 'Q'
board.append(''.join(row))
row[queens[i]] = '.'
return board
def backtrack(i):
if i == n:
ans.append(generateBoard())
else:
# next row which col
for j in range(n):
if j in cols or i + j in diag1 or i - j in diag2:
continue
# dfs + backtrack
queens[i] = j
cols.add(j)
diag1.add(i + j)
diag2.add(i - j)
backtrack(i + 1)
cols.remove(j)
diag1.remove(i + j)
diag2.remove(i - j)
backtrack(0)
return ans
总结
dfs + backtrack的复杂度并不是n的n次方 中间剪枝了不少的
复杂度是o(N!)
边栏推荐
猜你喜欢
随机推荐
Geoswath plus technology and data acquisition and processing
Leetcode the shortest path of three (eight) charts per week
[NAND file system] Introduction to UBIFS
5g terminal identification Supi, suci and IMSI analysis
生产者和消费者问题
What is JUC
Using Monte Carlo method to calculate pi
-bash: telnet: command not found的解决方法
【M32】单片机 xxx.map 文件简单解读
New GDI functions and functions introduced in MiniGUl version 1.1.0 (II)
Languo technology helps the ecological prosperity of openharmony
《数据安全实践指南》- 数据采集安全实践-数据分类分级
Chrome 安装 driver
-Bash: telnet: command not found solution
Literature record (part106) -- graph auto-encoder via neighborhood Wasserstein reconstruction
Information system project management - scope management (focus)
Flink core features and principles
The song of cactus - marching into to C live broadcast (2)
Test ofnatural clusters via s-dbscan a self tuning version of DBSCAN
Install boost
![[NAND file system] UBI introduction](/img/69/7213b8b39cebc1626eb6bb8cc10d16.png)








![[openairinterface5g] RRC NR resolution (I)](/img/04/fec30b5c86f29d82bd7d0b13293494.jpg)