本文主要是介绍Leetcode78.子集 - Subset - Python - 回溯法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解题思路:
1.本题不需要剪枝,因为要遍历树的每一个节点,并将当前经过的节点路径path都记录下来,每一个path都是子集。
2.此题可以不写终止递归条件,因为在for循环中,遍历完就自己结束了。
注意事项:
1.注意for循环中,每次递归是i+1,而不是start+1
代码:
class Solution(object):path = []result = []def subsets(self, nums):self.result = []self.tracingBack(nums, 0)return self.resultdef tracingBack(self, nums, start):self.result.append(self.path[:])if start >= len(nums):returnfor i in range(start, len(nums)):self.path.append(nums[i])self.tracingBack(nums, i+1)self.path.pop()
这篇关于Leetcode78.子集 - Subset - Python - 回溯法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!