1.6 Depth First Search
4.1 组合搜索 Combination
子集Subsets
class Solution:
#1. 递归的定义
#以 S 开头的,配上 nums 以 index 开始的数所有组合放到 results 里
def search(self, nums, S, index):
#3. 递归的出口
if index == len(nums):
self.results.append(list(S)) #deep copy
return
#2. 递归的拆解 (如何进入下一层)
#选了 nums[index]
S.append(nums[index])
self.search(nums, S, index + 1)
#不选 nums[index]
S.pop()
self.search(nums, S, index + 1)
def subsets(self, nums):
self.results = []
self.search(sorted(nums), [], 0)
return self.results数字组合
数字组合 II
Palindrome Partitioning
4.2 排列搜索 Permutation
permutation
Permutations II
N Queens
搜索,动态规划,二叉树的时间复杂度计算通用公式
4.3 必“背”程序
Last updated