书接上文,红皇后问题只需要在DFS的模板上改变一下就可以解决。
在原模板中,我们至少需要两个数组--一个用来记录路径,另一个用来判断i是否被使用过。
在这个问题中,前者对应于记录棋盘状态,后者则对应于判断某一位置是否合法。
所以,我们需要一个二维数组来模拟棋盘,然后用三个数组,分别对应于某一行,某一列和某一斜线是否合法,即在这些直线上是否已经存在一个红皇后。
如下
我曾想标记坐标而不是标记直线,结果标错了,还是直线更加简单省力一些
书接上文,红皇后问题只需要在DFS的模板上改变一下就可以解决。
在原模板中,我们至少需要两个数组--一个用来记录路径,另一个用来判断i是否被使用过。
在这个问题中,前者对应于记录棋盘状态,后者则对应于判断某一位置是否合法。
所以,我们需要一个二维数组来模拟棋盘,然后用三个数组,分别对应于某一行,某一列和某一斜线是否合法,即在这些直线上是否已经存在一个红皇后。
如下
我曾想标记坐标而不是标记直线,结果标错了,还是直线更加简单省力一些