すべての可能なサブセット(パワー設定)の配列を返す配列NUMS整数ない繰り返し要素のセットを与えられました。
説明:ソリューションセットの重複サブセットを含めることはできません。
例:
入力:NUMS = [1,2,3]
出力
:
[ [3]、
[1]、
[2]、
[2,3]、
[1,3]、
[2,3]、
[1,2 ]、
[]
]
これは、動的プログラミングは、唯一のバック使用することができないこの特定のパスが必要
1、全ての位置Mopaiダウンジャンプすることができる原点と現在の位置
2は、最終的に再帰的な原点位置に復帰
Aとして図3に示すように、次の位置原点位置、上記の操作を繰り返して
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
result = []
search = []
self._dfs(nums, 0, search, result)
return result
def _dfs(self, nums, index, search, result):
result.append(search.copy())
for i in range(index, len(nums)):
# 以当前位置为源流
search.append(nums[i])
# 往下摸排所有可以跳到的位置
self._dfs(nums, i + 1, search, result)
# 最终递归返回源流位置,然后再以下面一个位置作为源流位置,重复上述操作
search.pop()