1、46题,全排列

https://leetcode-cn.com/problems/permutations/

class Solution(object):
def permute(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
n = len(nums)
results = []
def backtrack(first = 0):
if first == n:
results.append(nums[:])
return
for i in range(first, n):
nums[first], nums[i] = nums[i], nums[first]
backtrack(first + 1)
nums[first], nums[i] = nums[i], nums[first]
backtrack()
return results

2、47题,全排列二

https://leetcode-cn.com/problems/permutations-ii/

class Solution(object):
def permuteUnique(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
n = len(nums)
results = []
def backtrack(first = 0):
if first == n:
results.append(nums[:])
return
s = set()
for i in range(first, n):
if nums[i] in s:
continue
s.add(nums[i])
nums[first], nums[i] = nums[i], nums[first]
backtrack(first + 1)
nums[first], nums[i] = nums[i], nums[first]
backtrack()
return results

3、51题,N皇后

https://leetcode-cn.com/problems/n-queens/

class Solution(object):
def solveNQueens(self, n):
"""
:type n: int
:rtype: List[List[str]]
"""
results = []
result = ["." * n] * n
l = set()
c = set()
x = set()
y = set() def backtrack(first=0):
if first == n:
results.append(result[:])
return
for i in range(n):
if i in l or first in c or i - first in x or i + first in y:
continue
l.add(i), c.add(first), x.add(i - first), y.add(i + first)
result[i] = first * "." + "Q" + (n - first - 1) * "."
backtrack(first + 1)
l.remove(i), c.remove(first), x.remove(i - first), y.remove(i + first)
result[i] = n * "."
backtrack()
return results

4、52题,N皇后二

https://leetcode-cn.com/problems/n-queens-ii/

class Solution(object):
def totalNQueens(self, n):
"""
:type n: int
:rtype: int
"""
self.results = 0
l = set()
c = set()
x = set()
y = set() def backtrack(first=0):
if first == n:
self.results += 1
return
for i in range(n):
if i in l or first in c or i - first in x or i + first in y:
continue
l.add(i), c.add(first), x.add(i - first), y.add(i + first)
backtrack(first + 1)
l.remove(i), c.remove(first), x.remove(i - first), y.remove(i + first)
backtrack()
return self.results

最新文章

  1. HDU 3622 Bomb Game
  2. 解决String TestContext下使用junit4抛出异常(java.lang.NoClassDefFoundError)的问题
  3. git配置管理
  4. 关于OA中权限越级的问题
  5. UIView下使用Animation控制动画
  6. Java内存管理以及各个内存区域详解
  7. Mobie 有用的几个css js代码
  8. SQL Server数据转换【包括Geometry类型】的技巧总结
  9. Linux主机上发布java web应用
  10. (转)Vi命令详解
  11. 用分治法解决最近点对问题:python实现
  12. 7.10 break.c 程序
  13. CrossFire Round #481 div.3 978 打后感
  14. SharePoint Framework 企业向导(二)
  15. Socket buffer 调优相关
  16. 关于正则表达式的“\b”
  17. Android免费短信验证
  18. “Gogoing”改进方案
  19. C/S模式和B/S模式
  20. otl使用存储过程或是LEFT JOIN时提示输出类型未知的问题

热门文章

  1. PAT Basic 1017 A除以B (20) [数学问题-⼤整数运算]
  2. The mplot3d Toolkit
  3. 初次运行Git前的配置
  4. 93.QuerySet转换为SQL的条件:迭代,切片(指定步长),len函数,list函数,判断
  5. 吴裕雄--天生自然 pythonTensorFlow图形数据处理:windows操作系统安装指定版本的tensorflow
  6. MyBatis从入门到精通(第4章):MyBatis动态SQL【if、choose 和 where、set、trim】
  7. 一篇文章带你了解axios网络交互-Vue
  8. fatal: remote origin already exists.
  9. C# 元组
  10. Linux_列出文件和文件属性