首页 > 编程语言 >复习回顾-回溯算法-90. 子集 II 【犹豫】

复习回顾-回溯算法-90. 子集 II 【犹豫】

时间:2024-02-19 09:23:16浏览次数:29  
标签:used nums res self II 回溯 90 path backtracking

注意点&感悟:

  • 对过滤条件放在for里面,还是外面,有些犹豫了。【疑问,先搁置】
  • 我感觉
  • for 里面,应该是进去树枝的过程,
  • for 外面写,应该是终止条件。
  • ================
  • 又看了一眼视频,for里面是取数的过程,所以,应该取数的过程,进行了剪枝。

题目链接:90. 子集 II

自己独立写的代码:

class Solution:
    def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
        # 难点去重 利用排序 借助used
        nums.sort()
        res = []
        used = [0] * len(nums)
        self.backtracking(nums,0,[],res,used)
        return res

    def backtracking(self,nums,start_index,path,res,used):
        # 去重
        res.append(path[:])

        for i in range(start_index,len(nums)):
            if i > 0 and nums[i] == nums[i-1] and used[i-1] == 0:
                continue
            path.append(nums[i])
            used[i] = 1
            self.backtracking(nums,i+1,path,res,used)
            used[i] = 0
            path.pop()

通过截图:

标签:used,nums,res,self,II,回溯,90,path,backtracking
From: https://www.cnblogs.com/liqi175/p/18020366

相关文章

  • 回顾复习-回溯算法-78. 子集
    注意点&感悟:复习是个好东西题目链接:78.子集自己独立写的代码:classSolution:defsubsets(self,nums:List[int])->List[List[int]]:res=[]self.backtracking(nums,0,[],res)returnresdefbacktracking(self,nums,start_index,......
  • day28 回溯算法part4 代码随想录算法训练营 90. 子集 II
    题目:90.子集II我的感悟:只要功夫深,铁树也开花参考答案,没我写的好理解难点:去重代码难点:i-1的含义易错点:nums要排序回溯要写i+1path.append要添加的是nums[i]代码示例:classSolution:defsubsetsWithDup(self,nums:List[int])->List[List[int]]:......
  • Porsche Piwis 3 Tester III V43.300.22 + V38.250 Diagnostic Tool Support Diagnosi
    Greatnews!ThePorschePiwis3TesterIIIV43.300.22+V38.250DiagnosticToolhasjustbeenupdatedwithnewsoftwareversions.ThislatestversioncoversalloldandnewPorschecarsupto2024,makingitacomprehensivediagnostictoolforprofessiona......
  • 928. 尽量减少恶意软件的传播 II
    原题链接我们先根据题意构建图G。然后我们可以得出如果一个普通结点A连接着两个感染源结点,那么其无论如何都会被感染;因此我们要找寻那些只与一个感染源结点相连接的普通节点;然后我们在图中把感染源结点擦除,可以得到几个只由普通结点构成的图,我们把这几张图看作一个集合(即使用并......
  • 代码随想录算法训练营第十八天 | 112. 路径总和,113. 路径总和ii ,106.从中序与后序遍
     513.找树左下角的值 已解答中等 相关标签相关企业 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层最左边 节点的值。假设二叉树中至少有一个节点。 示例1:输入:root=[2,1,3]输出:1示例2:输入:[1,2,3,4,null,5,6,n......
  • Codeforces Round 903 (Div. 3)
    题目链接A.按题意模拟字符串find函数if(x.find(s)==string::npos)//没找到#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1e5+10;#defineinf0x3f3f3f3fvoidsolve(){intn,m;cin>>n>>m;stringx,s;cin>>x&g......
  • day28 回溯算法part4 代码随想录算法训练营 78. 子集
    题目:78.子集我的感悟:看见弹幕是秒了,我有点不敢相信,自己试了试,没有通过,再看了一眼文字讲解。感觉懂了点理解难点:这题可以没有终止条件,开始我就疑惑这个终止条件怎么写注意这个nums[i]要添加进入是可以不写终止的,不会出现无线递归的,因为是从i+1开始,那会不会越界??,不会,最......
  • 今天练习2-回溯算法-93. 复原 IP 地址
    注意点&感悟:加油!题目链接:93.复原IP地址自己独立写的代码:classSolution:defrestoreIpAddresses(self,s:str)->List[str]:res=[]self.backtracking(s,0,[],res)returnresdefbacktracking(self,s,start_index,path,res......
  • 今天练习-回溯算法-93. 复原 IP 地址
    注意点&感悟:难吗?不难。难的是克服畏难的心里。题目链接:93.复原IP地址自己独立写的代码:fromtypingimportListclassSolution:defrestoreIpAddresses(self,s:str)->List[str]:res=[]self.backtracking(s,0,[],res)return......
  • day28 回溯算法part4 代码随想录算法训练营 93. 复原 IP 地址
    题目:93.复原IP地址我的感悟:加油!理解难点:开始没理解,start_index的含义start_index是切割后的位置信息。代码难点:代码示例:fromtypingimportListclassSolution:defrestoreIpAddresses(self,s:str)->List[str]:#找3个分割点?#最后......