【力扣hot100】刷题笔记Day18

前言

  • 晚上巩固一下今天的回溯题,基础不牢地动山摇,po一张代码随想录总结的

组合补充

77. 组合 - 力扣(LeetCode)

  • class Solution:
        def combine(self, n: int, k: int) -> List[List[int]]:
            path = []
            res = []
            def backtrack(start = 1):
                if len(path) == k:
                    res.append(path[:])
                    return
                # for i in range(start, n + 1): # [start,n]
                for i in range(start, n + 2 - (k - len(path))): # 剪枝,个数不够的不需要遍历了
                    path.append(i)
                    backtrack(i+1)
                    path.pop()
            backtrack()
            return res

 40. 组合总和 II - 力扣(LeetCode)

  • class Solution:
        def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]:
            candidates.sort()
            n = len(candidates)
            path = []
            res = []
            def backtrack(start, target):
                if target == 0:
                    res.append(path[:])
                    return
                for i in range(start, n):
                    if target - candidates[i] < 0:
                        return  # 树枝剪枝
                    if i > start and candidates[i] == candidates[i-1]:
                        continue  # 树层去重
                    path.append(candidates[i])
                    backtrack(i+1, target - candidates[i])
                    path.pop()
            backtrack(0, target)
            return res
    

216. 组合总和 III - 力扣(LeetCode)

  • class Solution:
        def combinationSum3(self, k: int, n: int) -> List[List[int]]:
            path = []
            res = []
            def backtrack(start, n):
                if len(path) == k:
                    if n == 0:
                        res.append(path[:])
                    return  # 剪枝,个数到了
                for i in range(start, 10):
                    if n - i < 0: return  # 剪枝,总和小了
                    path.append(i)
                    backtrack(i+1, n-i)
                    path.pop()
            backtrack(1, n)
            return res
    

子集补充

 90. 子集 II - 力扣(LeetCode)

  • class Solution:
        def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
            n = len(nums)
            if n == 0: return []
            nums.sort()  # 排序
            res = []
            path = []
            # used = [0] * n
            def backtrack(start = 0):
                res.append(path[:])
                for i in range(start, n):
                    # if i != 0  and nums[i] == nums[i-1] and used[i-1] == 0:
                    if i > start and nums[i] == nums[i-1]:
                        continue  # 树层去重
                    # used[i] = 1
                    path.append(nums[i])
                    backtrack(i+1)
                    # used[i] = 0
                    path.pop()
            backtrack()
            return res

全排列补充

 47. 全排列 II - 力扣(LeetCode)

  • class Solution:
        def permuteUnique(self, nums: List[int]) -> List[List[int]]:
            path = []
            res = []
            nums.sort()
            n = len(nums)
            used = [0] * n
            def backtrack():
                if len(path) == n:
                    res.append(path[:])
                    return
                for i in range(n):
                    if i != 0 and nums[i] == nums[i-1] and used[i-1] == 0:
                        continue  # 树层去重,注意不是return
                    if used[i] == 0:
                        used[i] = 1
                        path.append(nums[i])
                        backtrack()
                        used[i] = 0
                        path.pop()
            backtrack()
            return res

后言

  • 还是熟练了一些哈,明天再接再厉!玩儿去咯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/418871.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python GUI开发库之nicegui使用详解

概要 在 Python 中,创建图形用户界面(GUI)应用程序通常需要大量的代码和时间。然而,随着 Python 生态系统的不断发展,出现了一些简化 GUI 开发过程的工具和库。其中之一就是 NiceGUI 库。本文将深入探讨 NiceGUI 库的功能、用法以及如何利用它来创建漂亮而功能丰富的 GUI…

Axios入门

1.概念 Axios是一个开源的可以用在浏览器和node.js的异步通信框架&#xff0c;他的主要功能是实现Ajax异步通信 2.Axios入门程序 2.1.准备json格式的文件 {"name": "小明","address": {"street": "雁塔","city"…

nginx使用详解--缓存

Nginx 是一个功能强大的 Web 服务器和反向代理服务器&#xff0c;它可以用于实现静态内容的缓存&#xff0c;缓存可以分为客户端缓存和服务端缓存。 客户端缓存 客户端缓存指的是浏览器缓存, 浏览器缓存是最快的缓存, 因为它直接从本地获取(但有可能需要发送一个协商缓存的请…

[设计模式Java实现附plantuml源码~行为型]算法的封装与切换——策略模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

AI、AIGC、AGI、ChatGPT它们的区别?

今天咱们聊点热门话题&#xff0c;来点科普时间——AI、AIGC、AGI和ChatGPT到底是啥&#xff1f;这几个词听起来好像挺神秘的&#xff0c;但其实它们就在我们生活中。让我们一起探索这些术语的奥秘&#xff01; AI&#xff08;人工智能&#xff09;&#xff1a;先说说AI&#…

LTE 网络与互联网的连接

LTE 网络与互联网的连接 当用户设备 UE&#xff08;如手机&#xff09;开机后&#xff0c;就登记到 LTE 网络&#xff0c;以便使用网络资源传送 IP 数据业务。 LTE 网络内的数据路径由两大部分组成&#xff1a; -空口无线链路&#xff08;UE→eNB&#xff09;。 -核心网中的隧…

App应用程序(概念、开发步骤、技术要点介绍)

引言&#xff1a;踏上数字化创新之旅 在当今数字化时代&#xff0c;移动应用程序已经成为我们日常生活的不可或缺的一部分。无论是社交媒体、生产力工具还是娱乐应用&#xff0c;App的普及改变了我们与技术互动的方式&#xff0c;塑造了全新的用户体验。App应用程序开发正是这…

医学大数据|R|竞争风险模型:可视化与图像优化

前情回顾&#xff1a; 医学大数据|R|竞争风险模型&#xff1a;基础、R操作与结果解读-CSDN博客 代码复习&#xff0c;但是大家可见得知道图画的比较丑。 library("survival") library("cmprsk") library("mgus2") data(mgus2) #预处理 mgus2&l…

无法访问云服务器上部署的Docker容器(二)

说明&#xff1a;记录一次使用公网IP 接口地址无法访问阿里云服务接口的问题&#xff1b; 描述 最近&#xff0c;我使用Docker部署了jeecg-boot项目&#xff0c;部署过程都没有问题&#xff0c;也没有错误信息。部署完成后&#xff0c;通过下面的地址访问后端Swagger接口文档…

设计模式(二)单例模式

单例模式&#xff1a;确保一个类只有一个实例&#xff0c;并提供了全局访问点&#xff1b;主要是用于控制共享资源的访问&#xff1b; 单例模式的实现分为懒汉式和饿汉式。 懒汉式单例在需要时才会创建&#xff0c;而饿汉式单例则在类加载时立即创建实例&#xff1b; 单例模…

Web APIs知识点讲解(阶段二)

DOM-事件基础 一.事件 1.事件 目标&#xff1a;能够给 DOM元素添加事件监听 事件:事件是在编程时系统内发生的动作或者发生的事情&#xff0c;比如用户在网页上单击一个按钮 事件监听:就是让程序检测是否有事件产生&#xff0c;一旦有事件触发&#xff0c;就立即调用一个函…

Adobe推出AI音乐创作工具原型;大型语言模型对编程的影响有限?

&#x1f989; AI新闻 &#x1f680; Adobe推出AI音乐创作工具原型 摘要&#xff1a;Adobe在布鲁克林的Hot Pod峰会上发布了一款名为“Project Music GenAI Control”的AI音乐创作工具原型。这款工具通过生成式人工智能技术&#xff0c;使用户可以无需专业的音频制作经验就能…

使用Node.js构建一个简单的聊天机器人

当谈到人工智能&#xff0c;我们往往会想到什么&#xff1f;是智能语音助手、自动回复机器人等。在前端开发领域中&#xff0c;我们也可以利用Node.js来构建一个简单而有趣的聊天机器人。本文将带你一步步实现一个基于Node.js的聊天机器人&#xff0c;并了解其工作原理。 首先…

tcp的三次握手和四次挥手?

一&#xff1a;引出 客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西&#xff1b;由于TCP不存在连接的概念&#xff0c;只存在请求和响应&#xff0c;请求和响应都是数据包&#xff0c;它们之间都是经过由TCP创建的一个从客户端发起&#xff…

Docker容器(3)单容器管理

一、单容器 1.1概念简介 Docker三个重要概念: 仓库(Repository); 镜像(Image); 容器(Container). *Docker的三个重要概念是仓库(Repository)、镜像(Image)和容器(Container)**。具体如下&#xff1a; **镜像(Image)**&#xff1a;Docker镜像是创建容器的基础&#xff0c;它类似…

网络传输基本流程(封装,解包)+图解(同层直接通信的证明),报头分离问题,协议定位问题,协议多路复用

目录 网络传输基本流程 引入 封装 过程梳理 图解 报文 解包 过程梳理 图解 -- 同层直接通信的证明 总结 解包时的报头分离问题 举例 -- 倒水 介绍 自底向上传输时的协议定位问题 介绍 解决方法 协议多路复用 介绍 优势 网络传输基本流程 引入 首先,我们明确…

热榜排行爬虫详解

作为一个爬虫必须摸不一样的鱼&#xff0c;平时大家怎么看热榜&#xff0c;今天爬一个热榜数据&#xff0c;咱就在ied中读热榜。还是一个乌龙事件听我细细道来。 1&#xff0c;话不多说&#xff0c;今天图也不看了直接进入主题&#xff0c;打开网站首页抓个包 2&#xff0c;可…

MWC 2024丨美格智能发布全新5G-A模组及FWA解决方案,将5.5G带入现实

2月26日&#xff0c;在MWC 2024世界移动通信大会上&#xff0c;美格智能正式宣布推出5G-A模组SRM817WE以及全新的5G-A FWA解决方案&#xff0c;包含5G-A CPE解决方案SRT858M、5G-A MiFi解决方案SRT878H和5G-A ODU解决方案SRT853MX&#xff0c;旨在进一步提升网络性能&#xff0…

Mamba与MoE架构强强联合,Mamba-MoE高效提升LLM计算效率和可扩展性

论文题目&#xff1a; MoE-Mamba: Efficient Selective State Space Models with Mixture of Experts 论文链接&#xff1a; https://arxiv.org/abs/2401.04081 代码仓库&#xff1a; GitHub - llm-random/llm-random 作为大型语言模型&#xff08;LLM&#xff09;基础架构的后…

Docker+Kafka+Kafka-ui安装与配置

前言 Docker、Kafka都是开发中常用到的组件。在自己的第三台电脑上去安装这些…所以写个博客记录一下安装过程。本文主要内容&#xff1a;Docker安装、kafka安装、kafka可视化配置。这次的电脑环境是Windows11&#xff0c;Intel处理器。 Docker安装 https://www.docker.com/p…