n皇后问题的要求就是在nxn的棋盘上面所有的皇后不能相互攻击,通俗的讲就是所有的皇后既不在同一行也不在同一列,不在同一对角线。例如下图这样:
这是4皇后问题的所有解的情况,图中星号代表皇后所放位置。当然还有8皇后等等。n皇后问题是一个经典的回溯算法,为了减小代码的空间复杂度,所以这里使用尾递归来求解。递归的一个特点就是,他会记录每次求得的值,在需要用到已经计算过的值时函数可以直接调用上一次计算好的值。现在我们就来实现一个可以输出
n皇后问题的要求就是在nxn的棋盘上面所有的皇后不能相互攻击,通俗的讲就是所有的皇后既不在同一行也不在同一列,不在同一对角线。例如下图这样:
这是4皇后问题的所有解的情况,图中星号代表皇后所放位置。当然还有8皇后等等。n皇后问题是一个经典的回溯算法,为了减小代码的空间复杂度,所以这里使用尾递归来求解。递归的一个特点就是,他会记录每次求得的值,在需要用到已经计算过的值时函数可以直接调用上一次计算好的值。现在我们就来实现一个可以输出