题目信息:
解题:
在处理N皇后问题时,我们可以采取回溯算法进行处理问题,使用时可以将问题抽象为一个树形结构,抽象树形结构如下:(图片应该是第2行,写错了,也可以自己一步步画一下该问题的树形结构)
从树形结构中不难看出,第三行时,皇后数量也为3,此时就终止了,所以本次递归的终止条件就是:row:表示行。我们收集的结果也为最后一行的结果。
在处理问题时注意问题条件:皇后的位置不同行,不同列、不在同一斜线上,故而再放置时需要判断皇后位置放置是否正确:
后续就是代码如何执行,执行的逻辑条件:
用for循环遍列,放置皇后,当判断皇后的位置放置是合适的时候,放置皇后,进行递归,然后回溯处理结果,撤销皇后
整体代码如下:
参考书籍资料:代码随想录



