换用JavaScript刷题,有种不一样的感觉。
题目描述
N皇后问题,在一个n*n规格的棋盘上放置n个Queen,放置规则为:同一行/列/斜边上只能有一个Queen。
输入n,程序返回所有的放置方案。
输出棋盘中:.
表示空,Q
表示Queen。
例:
|
解题思路
经典的DFS问题,对于每行,枚举所有的列,判断当前状态是否可放置Q,如果可以放置,则进入下一行的搜索;因为题目要求返回所有的放置方案,因此在DFS回溯过程中记得要撤销放置;
map结构:map[i]表示第i行放置Q的列坐标。
AC代码
Runtime: 122 ms
|