51. N皇后
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。
上图为 8 皇后问题的一种解法。
给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。
每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。
示例:
输入: 4
1 | 输出: [ |
解释: 4 皇后问题存在两个不同的解法。
提示:
皇后,是国际象棋中的棋子,意味着国王的妻子。皇后只做一件事,那就是“吃子”。当她遇见可以吃的棋子时,就迅速冲上去吃掉棋子。当然,她横、竖、斜都可走一或七步,可进可退。(引用自 百度百科 - 皇后 )
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/n-queens
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Solution
暴力枚举,首先 对于 n*n 的 n 皇后问题,肯定不会出现同一列和同一行存在两个棋子的机会,因此 每个棋子肯定为独占一行或者一列。可以一行一行的进行填充,知道不会出现冲突,其时间复杂度为 O(n!)
1 |
|
- 本文标题:51. N皇后
- 本文作者:codeflysafe
- 创建时间:2020-05-08 13:40:40
- 本文链接:https://codeflysafe.github.io/2020/05/08/2020-05-08-51.-N皇后/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论