塔子哥是一个热衷于国际象棋的棋手,他最近在研究 n 皇后问题。在国际象棋中,皇后是一种强大的棋子,能够沿着横、竖、斜线攻击其他棋子。
而在 n 皇后问题中,皇后也是一种强大的棋子,它能攻击同一行、同一列以及同一 45 度角斜线和 135 度角斜线上的其他皇后。
暴力O(n3)不可取.我们先扫描一遍棋盘。用r,c 数组来统计第i行/第i列有多少个皇后。对于处于同一正副对角线的两点,有如下规律:
正对角线:两点的横纵坐标之差x-y相等.所以用x-y来对正对角线编号
副对角线:两点的横纵坐标之和相等.所以用x+y来对正对角线编号
所以再使用x,y 数组来记录第i个正负对角线的皇后个数。