首页 > 编程语言 >今天回顾-回溯算法-组合40

今天回顾-回溯算法-组合40

时间:2024-02-02 10:58:19浏览次数:43  
标签:used target res 40 算法 candidates 回溯 path total

注意点&感悟:

  • 还是得复习!!多巩固巩固,我可以的!!!!!

题目链接:40. 组合总和 II

自己独立写的代码:

class Solution:
    def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]:
        res = []
        candidates.sort()
        used = [0] * len(candidates)
        self.backtracking(candidates,target,0,[],0,res,used)
        return res
    
    def backtracking(self,candidates,target,start_index,path,total,res,used):
        # 特殊 终止条件
        if total == target:
            res.append(path[:])
            return
        # 核心
        for i in range(start_index,len(candidates)):
            # 1.去重
            if i>0 and candidates[i] == candidates[i-1] and used[i-1] ==0:  # used未使用
                continue
            total += candidates[i]
            # 2.过滤
            if total > target:
                break
            path.append(candidates[i])
            used[i] = 1
            self.backtracking(candidates,target,i+1,path,total,res,used)
            used[i] = 0
            path.pop()
            total -= candidates[i]

通过截图:

标签:used,target,res,40,算法,candidates,回溯,path,total
From: https://www.cnblogs.com/liqi175/p/18002736

相关文章

  • 20240201
    Activity相关知识笔记Activity的基本用法手动创建Activity的方法创建和加载布局xml文件在AndroidMainifest中注册Activity,这一步通常是自动完成的。主Activity,启动器Activity在Activity中添加Menu,添加Toast通知销毁Activity使用Intent在Activity之间穿梭显式Intentvali......
  • 比较以下Unity AStar Pathfinding, NavMesh, Recast Navigation 寻路算法的优点与缺点
    一、AStarPathfindingAStarPathfinding是一种基于图搜索的寻路算法,它使用启发式搜索来找到最短路径。AStarPathfinding的优点包括:高效性:AStarPathfinding是一种高效的寻路算法,因为它使用启发式搜索来找到最短路径,可以大大减少搜索空间,从而提高寻路速度。灵活性:AStarPathf......
  • [算法学习笔记02]分块应用
    #[算法学习笔记02]分块应用###每日蒟蒻小故事(1/1)蒟蒻考完CSP回到S1,开始(和S2一起)新一轮的S组学习。第一周,学校学习的内容是分块应用。蒟蒻尝试听懂,并听懂了$\huge\frac{1}{3}$的内容。被五年级小朋友吊打的蒟蒻想学懂分块应用。“所以……什么是分块应用呢?”###什......
  • [算法学习笔记01]线段树
    #[算法学习笔记01]线段树###每日蒟蒻小故事(1/1)蒟蒻刚刚升到S组,发现S组正在学习线段树Ⅲ.蒟蒻并不知道什么是线段树.蒟蒻十分害怕,向大佬询问什么是线段树.大佬邪魅一笑,并未解释.于是可怜的蒟蒻什么也听不懂,只得在洛谷和OIWIKI上自学线段树.“所以什么是线段树?”###什么......
  • day27 代码随想录算法训练营 40. 组合总和 II
    题目:40.组合总和II我的感悟:只要在路上就不怕走的慢。卡尔的视频慢慢听0.75倍听还是可以的。只要状态好,就可以学。多学会鼓励理解难点:代码难点:①notused[i-1]等同于used[i-1]==0 这里用的是True和False,所以用的是notused[i-1]②i>0为了防止i-1越界③剪枝......
  • 全源最短路径——Floyd算法
    目录问题引入思路一览算法原理代码部分问题引入给出一个含有n个点,m条边的图,如何快速的给出任意两个点的最短路径思路一览这个,感觉没啥思路,可能能想到的最暴力的解法就是对每一个点进行dfs遍历,在遍历过程中更新,但是这样的做法肯定是时间复杂度爆炸的;因此还是老算法Floyd香,Floyd......
  • Python 机器学习 K-近邻算法 K值的选择
     1、选择说明K-近邻算法通过查找测试数据点的K个最近的邻居来进行预测。这些邻居的类别(对于分类问题)或值(对于回归问题)用于决定测试点的类别或值。K是一个正整数,通常较小。1)避免过小的K值K值过小可能会导致模型过于复杂,容易受到数据中噪声的影响,从而导致过拟合。避免在K-近邻......
  • 很好用的python游戏环境(续2):强化学习算法走迷宫游戏环境(导航问题 navigation):分享一个py
    相关前文:很好用的python游戏环境(续):强化学习算法走迷宫游戏环境(导航问题navigation):分享一个python语言的迷宫游戏环境项目的GitHub地址:https://github.com/Wonz5130/Maze_AIPS.这个游戏有个非常严重且致命的error,那就是单击这个游戏界面的时候会自动转成AI执行,否则就是人......
  • 深度学习-DNN深度神经网络-反向传播-40
    目录人工神经网络有两个或两个以上隐藏层,称为DNN深度神经网络三种常见的激活函数及其导数--复习前面所学线性回归更新权重逻辑回归多分类......
  • 很好用的python游戏环境(续):强化学习算法走迷宫游戏环境(导航问题 navigation):分享一个pyt
    相关:很好用的python游戏环境:强化学习算法走迷宫游戏环境(导航问题navigation):分享一个python语言的迷宫游戏环境前文分享了一个python下的maze游戏环境,本文再给出一个不错的实现项目,这个项目的实现更加的简单,并且可视化界面做的很好看,是用tkinter框架做的可视化:相关:迷宫游戏p......