Leetcode 90.子集II - Subset II - Python - 回溯法

解题思路:

1.此题与Leetcode78.子集,类似。但是加了一个条件就是给定的nums不是唯一的。

2.需要注意的是纵向的树枝重复是允许的,而横向的数层重复需要规避,规避代码:

            if i > start and nums[i] == nums[i-1]:
                continue

注意:

1.是i > start,这些边缘的位置要考虑清楚。

代码:

class Solution(object):
    result = []
    path = []
    def subsetsWithDup(self, nums):
        self.result = []
        nums.sort()
        self.trackBack(nums, 0)
        return self.result
    
    def trackBack(self, nums, start):
        self.result.append(self.path[:])

        for i in range(start, len(nums)):
            if i > start and nums[i] == nums[i-1]:
                continue
            self.path.append(nums[i])
            self.trackBack(nums, i+1)
            self.path.pop()

相关推荐

  1. Leetcode 90.子集II - Subset II - Python - 回溯

    2024-02-11 18:48:03       45 阅读
  2. Leetcode78.子集 - Subset - Python - 回溯

    2024-02-11 18:48:03       48 阅读
  3. day28回溯算法part04| 93.复原IP地址 78.子集 90.子集II

    2024-02-11 18:48:03       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-11 18:48:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-11 18:48:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-11 18:48:03       82 阅读
  4. Python语言-面向对象

    2024-02-11 18:48:03       91 阅读

热门阅读

  1. Qt 实现无边框窗口1.0

    2024-02-11 18:48:03       47 阅读
  2. 面试高频知识点:2线程 2.1.6线程之间如何通信

    2024-02-11 18:48:03       44 阅读
  3. 力扣94-二叉树的中序遍历

    2024-02-11 18:48:03       57 阅读
  4. 2.3 Binance_interface APP 现货行情-实时行情

    2024-02-11 18:48:03       51 阅读
  5. 1.1 Binance_interface安装与介绍

    2024-02-11 18:48:03       54 阅读
  6. 数据结构入门(2)时间复杂度与空间复杂度

    2024-02-11 18:48:03       49 阅读
  7. Leetcode 121 买卖股票的最佳时机

    2024-02-11 18:48:03       59 阅读
  8. 94 . 二叉树的中序遍历 -- 2024.2.10 LeetCode每日一题

    2024-02-11 18:48:03       58 阅读
  9. 完全背包总结二

    2024-02-11 18:48:03       45 阅读
  10. Elasticsearch中的模板:定义、作用与实践

    2024-02-11 18:48:03       56 阅读