算法理解
首先,N皇后是一个非常经典的递归+回溯的问题。
然后,写一个判断函数check来判断某个点是不是可以放置的点是该算法的重点
- 为了防止内存爆炸,N皇后问题是用一个[1,n]的矩阵存储结果的。该矩阵的下标值是皇后所在的行,该下标存储的值是皇后所在的列。
- 而且,我们是一行行的循环,所以不会产生同行的情况,所以不需要判断是否同行。只需判断是否同列和是否在正、反对角线上。
下面给出代码,我也尽可能的写出了注释,希望能帮到一些人,如果我哪里写的不对,请您在评论区指出。
# check函数,用来判断点[row, col]是否可以放置皇后
def check(board, row, col):
for i in range(row