mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 07:35:35 +08:00
Update 0078.子集.md
This commit is contained in:
@ -206,28 +206,20 @@ class Solution {
|
||||
## Python
|
||||
```python
|
||||
class Solution:
|
||||
def __init__(self):
|
||||
self.path: List[int] = []
|
||||
self.paths: List[List[int]] = []
|
||||
def subsets(self, nums):
|
||||
result = []
|
||||
path = []
|
||||
self.backtracking(nums, 0, path, result)
|
||||
return result
|
||||
|
||||
def subsets(self, nums: List[int]) -> List[List[int]]:
|
||||
self.paths.clear()
|
||||
self.path.clear()
|
||||
self.backtracking(nums, 0)
|
||||
return self.paths
|
||||
|
||||
def backtracking(self, nums: List[int], start_index: int) -> None:
|
||||
# 收集子集,要先于终止判断
|
||||
self.paths.append(self.path[:])
|
||||
# Base Case
|
||||
if start_index == len(nums):
|
||||
return
|
||||
|
||||
# 单层递归逻辑
|
||||
for i in range(start_index, len(nums)):
|
||||
self.path.append(nums[i])
|
||||
self.backtracking(nums, i+1)
|
||||
self.path.pop() # 回溯
|
||||
def backtracking(self, nums, startIndex, path, result):
|
||||
result.append(path[:]) # 收集子集,要放在终止添加的上面,否则会漏掉自己
|
||||
# if startIndex >= len(nums): # 终止条件可以不加
|
||||
# return
|
||||
for i in range(startIndex, len(nums)):
|
||||
path.append(nums[i])
|
||||
self.backtracking(nums, i + 1, path, result)
|
||||
path.pop()
|
||||
```
|
||||
|
||||
## Go
|
||||
|
Reference in New Issue
Block a user