[leetcode刷题] 组合

news2024/11/27 21:32:41

对于递归+回溯我觉得是需要多写多分析,递归三部曲:1.返回值和参数;2.终止条件;3.单层递归逻辑

1.通常情况下返回值都是void,参数的话根据实际需求设计,如果设置了全局变量那输入参数就可以少写几个,如果没有写全局变量输入参数就需要多写几个,一般就是存储结果的res,存放每条路径元素的path,然后如果要求和就要再加上sum,目标对比的target,基本就是这些。

2.终止条件,满足寻找的条件,单纯的组合就是元素个数满足需求,求和就是当前path中元素的和==target。总之就是当前的path中的元素满足条件了,就执行res.add的操作。

3.单层逻辑,这部分我觉得主要分成两个模块,一个是往path中添加元素,也就是深度上的遍历,或者说树枝的遍历,另外一部分是横向上的遍历,也就是往res中添加元素。后面的剪枝操作也是对树枝的修减或者对横向的深度的修减。

回溯过程:对于回溯过程我觉得也可以理解成纵向回退横向深入。如果把找组合的过程用树形图表示,回溯的部分就是纵向回退+横向深入,循环执行backtracking这一步,这是横向深入,而sum-=和removelast则是纵向回退。

这里统一规定used数组记录原candidates中各个元素使用情况。false没用,true用了。

然后根据题目需求,如果说收集到的path中也不能有重复,那同一树枝用过也要去掉,当然这个先去重我觉得也行;如果同样的组合不能重复出现就相当于同一树层要去重,也就是剪枝剪在横向深度上。跳过用过的元素就行。

40.组合总和2

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch:特定领域的生成式 AI - 预训练、微调和 RAG

作者:来自 Elastic Steve Dodson 有多种策略可以将特定领域的知识添加到大型语言模型 (LLM) 中,并且作为积极研究领域的一部分,正在研究更多方法。 对特定领域数据集进行预训练和微调等方法使 LLMs 能够推理并生成特定领域语言。 然而&#…

009集——磁盘详解——电脑数据如何存储在磁盘

很多人也知道数据能够保存是由于设备中有一个叫做「硬盘」的组件存在,但也有很多人不知道硬盘是怎样储存这些数据的。这里给大家讲讲其中的原理。 首先我们要明白的是,计算机中只有0和1,那么我们存入硬盘的数据,实际上也就是一堆0…

猫头虎分享已解决Bug ‍ || Go Error: no Go files in /path/to/directory

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

JVM(5)面试篇

1 什么是JVM? 关联课程内容 基础篇-初识JVM基础篇-Java虚拟机的组成 回答路径 JVM的定义作用功能组成 1、定义: JVM 指的是Java虚拟机( Java Virtual Machine )。JVM 本质上是一个运行在计算机上的程序,他的职责是…

猫头虎分享已解决Bug ‍ || Python Error: IndentationError: expected an indented block

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

Ollama 可以在 Windows 上运行了

Ollama 可以在 Windows 上运行了 0. 引言1. 下载 Ollma 安装文件2. 安装 Ollama3. 使用 Ollama 0. 引言 Ollama 终于可以在 Windows 上运行了,一直以来都是 “Coming soon”。 运行 Mixtral 8*7B 试了一下,推理速度和推理效果都很不错。 而且模型的下…

【mysql】数据约束

一、数据约束: 什么是约束? 为了确保表中的数据的完整性(准确性、正确性),为表添加一些限制。是数据库中表设计的一个最基本规则。使用约束可以使数据更加准确,从而减少冗余数据(脏数据)。 数据库完整性约…

PowerShell搭建vue起始项目

Windows PowerShell搭建vue起始项目 搜索PowerShell,以管理员身份运行。 复制文件夹路径 cd 到这个文件夹位置 命令行创建项目:vue create 项目名 这里写自己的项目名就行,我写的yeb vue create yeb 创建成功后是这样的 有颜色的就是选中的&#xff…

【区块链技术开发语言】在ubuntu18 系统环境下命令操作安装GO语言开发环境

要在Ubuntu 18系统上安装GO语言开发环境,您可以按照以下步骤进行: 打开终端(Ctrl + Alt + T)。 使用以下命令下载GO语言安装包: 或者手动打开链接下载: wget https://golang.org/dl/go1.17.5.linux-amd64.tar.gz确保替换链接中的版本号为最新版本。 解压下载的安装包…

Stable Diffusion系列(五):原理剖析——从文字到图片的神奇魔法(扩散篇)

文章目录 DDPM论文整体原理前向扩散过程反向扩散过程模型训练过程模型生成过程概率分布视角参数模型设置论文结果分析 要想完成SD中从文字到图片的操作,必须要做到两步,第一步是理解文字输入包含的语义,第二步是利用语义引导图片的生成。下面…

计网体系结构

计算机网络的概述 概念 网络:网状类的东西或系统。 计算机网络:是一个将分散的、具有独立性功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。即计算机网络是互连(通过通信链路互连…

Recovering a Small String-Codeforces

题目链接&#xff1a;Problem - A - Codeforces 解题思路&#xff1a;分三种情况 第一个字母a,最后一个字母z 前两个字母a 最后两个字母z 其他根据大小算出剩下的字母 下面是c代码&#xff1a; #include<iostream> using namespace std; int main() {int t, n;cin…

投稿状态Editor evaluating revision

See: https://nejm.net/talk/2303 https://muchong.com/t-15298340-1-pid-11 https://muchong.com/t-15298340-1-pid-11 https://muchong.com/t-15312191-1

ESP32学习(3)——连接WIFI

1.简介 Wi-Fi是基于IEEE 802.11标准的无线网络技术 让联网设备以无线电波的形式&#xff0c;加入采用TCP/IP通信协议的网络. Wi-Fi设备有两种模式&#xff1a; 1.Access Point(AP) 模式&#xff0c;此为无线接入点&#xff0c;家里的光猫就是结合WiFi和internet路由功能的AP。…

车载诊断协议DoIP系列 —— 车辆以太网节点需求汇总

车载诊断协议DoIP系列 —— 车辆以太网节点需求汇总 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,…

java排课管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java排课管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&#…

微信小程序的疑惑总结

未解决&#xff1a; 1.storebindings 这里的storebindings是什么 2.空行怎么写&#xff1f; 我用这个<text>\n</text>写&#xff0c;在模拟器上好使&#xff0c;在真机上显示\n 解决方法&#xff1a;在组件里写class类名&#xff0c;wxss里面改高度 已解决&am…

关于保存int型变量进int型数组的做法

如何保存int型变量进int型数组呢&#xff0c;大家先来看看我写的这串代码&#xff1a; #include <bits/stdc.h>using namespace std; int main(){int n;cin >> n;int num;vector<int>a;for (int i 1;i<n;i){cin >> num;if(num % 2 ! 0){a.push_ba…

Vue核心基础1:数据代理

1 回顾Object.defineProperty方法 let str hello const person {name: 张三,age: 18 } Object.defineProperty(person, sex, {// value: 男,// enumerable: true, // 控制属性是否可以枚举&#xff0c;默认值是false// writable: true, // 控制属性是否可以被修改&#xff0…

Date类(Java)、SimpleDateFormat

一、Date Date代表的是日期和时间 import java.util.Date;public class Test {public static void main(String[] args) {//Date日期类的使用//1.创建一个Date对象&#xff1a;代表系统当前时间信息Date d new Date();System.out.println(d); //打印当前时间信息//2.拿到时间…