[LeetCode]题解(python):051-N-Queens
2015-11-16 13:24
555 查看
[b]题目来源:[/b]
https://leetcode.com/problems/n-queens/
[b]题意分析:[/b]
这是一个N-后问题。在一个N×N的国际象棋板上放N个皇后使得这些皇后使得他们互相不能攻击。也就是一个皇后的行列和斜都没有其他的皇后。返回所有满足上述条件的所有结果。
[b]题目思路:[/b]
这题和前面的数独类似。首先要确定添加一个皇后的时候判断是否符合条件。利用回溯法每行或者每列添加皇后。
[b]代码(python):[/b]
View Code
转载请注明出处:http://www.cnblogs.com/chruny/p/4968648.html
https://leetcode.com/problems/n-queens/
[b]题意分析:[/b]
这是一个N-后问题。在一个N×N的国际象棋板上放N个皇后使得这些皇后使得他们互相不能攻击。也就是一个皇后的行列和斜都没有其他的皇后。返回所有满足上述条件的所有结果。
[b]题目思路:[/b]
这题和前面的数独类似。首先要确定添加一个皇后的时候判断是否符合条件。利用回溯法每行或者每列添加皇后。
[b]代码(python):[/b]
class Solution(object): def solveNQueens(self, n): """ :type n: int :rtype: List[List[str]] """ def isqueens(depth,j): for i in range(depth): if board[i] == j or abs(depth - i) == abs(board[i] - j): return False return True def dfs(depth,row): if depth == n: ans.append(row);return for i in range(n): if isqueens(depth,i): board[depth]= i dfs(depth + 1,row + ['.'*i + 'Q' + '.'*(n - i - 1)]) board = [-1 for i in range(n)] ans = [] dfs(0,[]) return ans
View Code
转载请注明出处:http://www.cnblogs.com/chruny/p/4968648.html
相关文章推荐
- Python的可变与不可变数据类型
- RT-thread 利用Scons 工具编译提示python编码错误解决办法
- WebDriver中自动识别验证码--Python实现
- python中xrange和range的异同
- [转] Python特殊语法:filter、map、reduce、lambda
- python3基本爬虫
- Python文件\文件夹操作—OS, File, Shutil
- python中若干高级编程技巧
- Python 安装Twisted 提示python version 2.7 required,which was not found in the registry
- Python运行时的常见错误
- File Processing by Python
- LeetCode OJ 系列之228 Summary Ranges --Python
- python3.5 + selenium环境搭建
- 7种python 可视化 库的比较(针对同一数据画图)
- 学习python(一)
- python入门
- Python的Flask开发框架简单上手笔记
- Python通过DOM和SAX方式解析XML的应用实例分享
- 详解在Python程序中解析并修改XML内容的方法
- python多线程