LeetCode刷题(22)
来源:互联网 发布:php ajax实例 编辑:程序博客网 时间:2024/06/11 20:11
N皇后问题,回溯法。
class Solution(object): def solveNQueens(self, n): """ :type n: int :rtype: List[List[str]] """ if n == 1: return [["Q"]] elif n < 4: return [] x = [0] * (n + 1) res = [] k = 1 while k>=1: x[k] = x[k] + 1 while x[k]<=n and not valid(x, k): x[k] = x[k] + 1 if x[k] <= n and k == n: tmp = [] for i in range(1, n+1): tmp_s = "" for j in range(n): if x[i] - 1 == j: tmp_s += "Q" else : tmp_s += "." tmp += [tmp_s] res += [tmp] elif x[k] <= n and k < n : k += 1 else: x[k] = 0 k -= 1 return resdef valid(x, k): for i in range(1, k): if x[i] == x[k] or (k - i) == abs(x[k] - x[i]): return False return True
阅读全文
0 0
- LeetCode刷题(22)
- 【leetcode】leetcode 刷题 笔记 (不定期更新)
- leetcode刷题(Python)
- LeetCode刷题(1)
- LeetCode刷题(2)
- LeetCode刷题(3)
- LeetCode刷题(废弃)
- LeetCode刷题(FizzBuzz)
- Leetcode刷题(1)
- Leetcode刷题(2)
- Leetcode刷题(3)
- Leetcode刷题(4)
- Leetcode刷题(5)
- Leetcode刷题(6)
- Leetcode刷题(7)
- Leetcode刷题(13)
- Leetcode刷题(17)
- LeetCode刷题(18)
- 网络编程的概述2 网络通信中的三要素3 InetAddress的概述和测试,IP地址:InetAddress 传输协议(网络协议)TCP 可靠协议,需要连接,效率会稍低 没有大小的限制UDP 不:
- 依赖注入的方式以及优缺点
- 二维数组的遍历
- ZKW费用流 模板
- Linux操作系统与实训教程 第一章 Linux概述
- LeetCode刷题(22)
- 并发与并行的区别?
- vue生命周期的理解
- HashMap实现原理及源码分析
- Al:从零开始的汇编语言1
- 直接双击启动tomcat中的startup.bat闪退原因及解决方法
- Python基础 (开发前须知)
- 技巧:VS字体方案修改
- selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(专治各种定位不准并发症)