[LC] 90.サブセットII

重複を含む可能性のある整数の集合を考える  NUMSを、すべての可能なサブセット(パワーセット)を返します。

注意:ソリューション・セットは、重複サブセットを含めることはできません。

例:

入力:[1,2,2]
出力:
[
  [2]
  [1]
  [1,2,2]
  [2,2]
  [1,2]
  []
]

クラスのソリューション(オブジェクト):
     デフsubsetsWithDup(自己
        、NUMS):""」
        :タイプNUMS:リスト[INT]
        :RTYPE:リスト[一覧[INT]]
        ""」
        RES、LST = []、[]
         場合 NUMSがあるなしまたは LEN(NUMS)== 0:
             リターンRES
        nums.sort()
        self.dfs(NUMS、0、LST、RES)
        リターンRES
    
    DEF DFS(自己、NUMS、レベル、LST、RES):
         もしレベル== LEN(NUMS):
            res.append(リスト(LST))
            リターン
        lst.append(NUMS [レベル])
        self.dfs(NUMS、レベル + 1 、LST、RES)
        lst.pop()

        文字を追加した後は、次のと同じものをスキップ
        しながらレベル<LEN(NUMS) - 1  NUMS [レベル] == NUMS [レベル+ 1 ]:
            レベル + = 1 
        self.dfs(NUMS、レベル + 1 、LST、RES)
        

 

おすすめ

転載: www.cnblogs.com/xuanlu/p/11711339.html