leetcode

Leetcode submissions
git clone git://git.laack.co/leetcode.git
Log | Files | Refs | README

subsets-iiV2.py (711B)


      1 # Proper backtracking solution:
      2 
      3 
      4 class Solution:
      5     def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
      6         nums.sort()
      7         subs = all_subsets([], nums)
      8         subs.sort()
      9         return subs
     10 
     11 
     12 def all_subsets(current, options):
     13     if len(options) == 0:
     14         return [current]
     15 
     16     return_ls = []
     17     prior = -100000
     18 
     19     for index, option in enumerate(options):
     20         if option == prior:
     21             continue
     22         prior = option
     23         cp_ls = current.copy()
     24         cp_ls.append(option)
     25         results = all_subsets(cp_ls, options[index + 1 : len(options)])
     26         for result in results:
     27             return_ls.append(result)
     28 
     29     return_ls.append(current)
     30     return return_ls