【Leetcodeシリーズ] [] [中]アルゴリズムサブセットII

トピック:

トピックリンク:  https://leetcode-cn.com/problems/subsets-ii/

 

問題解決のアイデア:

「すべての可能性」= +プルーンバック

考えるためには、重複したサブセットが含まれている要素は、最初の文字を横断したかのように、トラバースするときので、あなたは同じ要素をスキップする必要があり、次の非繰り返しエレメントがバックトラックを継続使用しません

 

コードの実装:

class Solution:
    def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
        def create_res(start, nums, res, path):
            if start > len(nums):
                return
            
            for index in range(start, len(nums)):
                if index > start and nums[index] == nums[index - 1]:
                    continue
                    
                path.append(nums[index])
                res.append(path[:])
                create_res(index + 1, nums, res, path)
                path.pop()
                
        nums.sort()
        res = [[]]
        create_res(0, nums, res, [])
        return res

 

公開された100元の記事 ウォンの賞賛4 ビュー1473

おすすめ

転載: blog.csdn.net/songyuwen0808/article/details/105303426