51. N-Queens

来源:互联网 发布:金红米i7手机数据参数 编辑:程序博客网 时间:2024/06/01 07:31

题意:n-皇后问题,即将n个皇后放到n*n的棋盘上满足任意两个皇后都不能攻击彼此,皇后一步能攻击其他同行、同列或者同对角线的皇后

要求:输入维度整数n,返回n皇后问题的所有不同的方案,每种方案是不同的放置布局,其中‘Q’和‘.’分别表示皇后和 空白空间。

思路:1、从结果来看,每列只有一个皇后,每行只有一个皇后。选择从行考虑(或者从列考虑,由对称性知,会得到相同的结果),使用的数据结构stack。

            2、如何判断后面的位置能否放置皇后?1 每次放置一个皇后,根据其位置将后面不能放置的位置放到哈希表(排除的位置表)中。

           3、如何判断不能放置的位置,即同行、同列、同对角线?采用ax+by+c=0。具体的,x=x0,y=y0,y=+-x + c0



0 0
原创粉丝点击