脖子疼,闹心,大论文总算是把第二三章修改完了,剩下四一五,赶快搞定。汇报给她,看她咋说
# 代码随想录训练营第III期--029--python
# 491
class Solution:
def findSubsequences(self, nums: List[int]) -> List[List[int]]:
res = []
def backtrack(index, path):
if len(path) >= 2:
if path[-1] >= path[-2]:
res.append(path)
else:
return
for i in range(index, len(nums)):
if nums[i] in nums[index:i]:# 这里并不是用path去重
continue
backtrack(i + 1, path + [nums[i]])
backtrack(0, [])
return res
# 46
def permute(self, nums: List[int]) -> List[List[int]]:
res = []
def backtrack(index, path):
if len(path) == len(nums):
res.append(path)
return
for i in range(len(nums)):
if nums[i] in path:
continue
backtrack(index + 1, path + [nums[i]]) # 由于nums是去重的,实际上index没啥作用
backtrack(0, [])
return res
# 47 收到上一题的启发,将index的类型修改为list 可以储存路径,类似带路径的dfs
def permuteUnique(self, nums: List[int]) -> List[List[int]]:
res = []
def backtrack(indexes, path):
if len(path) == len(nums):
if path not in res:
res.append(path)
return
for i in range(len(nums)):
if i in indexes:
continue
backtrack(indexes + [i], path + [nums[i]])
backtrack([], [])
return res