leetcode78_サブセット

すべての可能なサブセット(パワー設定)の配列を返す配列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()
公開された36元の記事 ウォン称賛18 ビュー6524

おすすめ

転載: blog.csdn.net/weixin_40027284/article/details/104820482