N皇后问题是指在给定的NxN的棋盘上要摆N个皇后,要求任何两个皇后不同行,不同列,也不在同一条斜线上。给定一个整数n,返回n皇后的摆法有多少种。
思考:如果在(i,j)位置(第i行第j列)放置了一个皇后,接下来哪些位置都不能放置皇后呢?
- 整个第i行的位置都不能放置
- 整个第j列的位置都不能放置
- 入股位置(a,b)满足|a-i| == |b-j| ,说明(a,b)和(i,j)处在同一条斜线上,也不能放置
先来看看我们应该怎么理解怎么摆的问题:(四皇后为例)
这是我们的最开始4x4棋盘
现在假如开始放置第一行第一个,继续往下:
上面的就是只有后面两个才是对的,那在看第三个,从第三个图在分着看它对应的第三列的放置:
很容易看到这个都是错的,那么退回上一步,以第四个开始