LeetCode--40.组合总和II

前言:如果你做出来了39题,但是遇到40题就不会做了,那我建议你去再好好缕清39题的思路,再来看这道题,会有种豁然开朗的感觉

解题思路:这道题其实与39题基本一致,所以本次题解是借着39题为基础来讲解的40题,故,看本次题解的前提是,会了39题

        1.获取信息:        

                与39题唯一的区别就是:

                (1)数组里面的数字不能在同一个组合中重复使用了

                (2)数组中会出现重复的数字了

        2.分析题目:

                与39题相比,只是变更了几个影响不大的条件,它的根本并没有改变,所以只需要对39题的代码进行适当修改就行了

                只需要把39题的代码中的,重复取同一个数字的步骤给去掉,再进行一些微调即可

        3.示例查验:略

        4.尝试编写代码:

                (1)39题优化后的代码,再进行一些步骤上的修改

                        思路:本次就辛苦你直接看代码及其注释,并且,好好对比一下,上一题和下一题的代码,我改了哪些东西

class Solution {
public:vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {vector<int>cand(51,0);//这里修改成了存储int类型,而不是bool类型for(int&c:candidates){cand[c]++;}vector<int>path;vector<vector<int>>res;reBack(res,path,cand,target,1);return res;}
private:void reBack(vector<vector<int>>&res,vector<int>&path,vector<int>&cand,int les,int i){if(les==0){res.push_back(path);return;}for(i;i<=les;i++){if(i>les)return;if(cand[i]){path.push_back(i);cand[i]--;//多出来的步骤reBack(res,path,cand,les-i,i);cand[i]++;//多出来的步骤path.pop_back();}}}
};

本次题解到这里就完了,接下来绝对不会断更,暑假的时候可以期待一下哦

还是要动手写一写,不要只看题解

还是说,纸上得来终觉浅,绝知此事要躬行

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

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

相关文章

Docker Desktop 安装到D盘(包括镜像下载等)+ 汉化

目录 一、 开启电脑虚拟化 1. 搜索并打开控制面板 2. 点击程序 3. 点击启用或关闭 Windows 功能 4. 打开相关功能 5. 没有Hyper-V的情况&#xff1a; 二、配置环境 1. 更新 WSL 到最新版 2. 设置 WSL 2为默认版本 3. 安装 Ubuntu 三. WSL 迁移到D盘 1. 停止运行wsl…

基于 OpenCV 的图像 ROI 切割实现

一、引言 在计算机视觉领域&#xff0c;我们经常需要处理各种各样的图像数据。有时候&#xff0c;我们只对图像中的某一部分区域感兴趣&#xff0c;例如在一张人物照片中&#xff0c;我们可能只关注人物的脸部。在这种情况下&#xff0c;将我们感兴趣的区域从整个图像中切割出…

Linux操作系统01

一、操作系统简史 二、Linux诞生与分支 三、Linux内核与发行版 内核版本号&#xff1a;cat /proc/version 、 u name -a 操作系统内核漏洞 【超详细】CentOS编译安装升级新内核_centos源码编译安装新版本内核 ntfs-CSDN博客 四、虚拟机 五、Docker容器技术 典型靶场集成环境…

Chrome 下载文件时总是提示“已阻止不安全的下载”的解决方案

解决 Chrome 谷歌浏览器下载文件时提示“已阻止不安全的下载”的问题。 ‍ 前言 最近更新 Chrome 后&#xff0c;下载文件时总是提示“已拦截未经验证的下载内容”、“已阻止不安全的下载”&#xff1a; ‍ 身为一个互联网冲浪高手&#xff0c;这些提醒非常没有必要&#x…

RocketMQ延迟消息是如何实现的?

RocketMQ的延迟消息实现机制非常巧妙&#xff0c;其核心是通过多级时间轮 定时任务 消息重投递来实现的。以下是详细实现原理&#xff1a; ⏰ 一、延迟消息的核心设计 预设延迟级别&#xff08;非任意时间&#xff09; RocketMQ不支持任意时间延迟&#xff0c;而是预设了18个…

D3 面试题100道之(21-40)

这里是D3的面试题,我们从第 21~40题 开始逐条解答。一共100道,陆续发布中。 🟩 面试题(第 21~40 题) 21. D3 中的数据绑定机制是怎样的? D3 的数据绑定机制通过 selection.data() 方法实现。它将数据数组与 DOM 元素进行一一对应,形成三种状态: Update Selection:已…

PyTorch nn.Parameter理解及初始化方法总结

一、理解 nn.Parameter 本质是什么&#xff1f; nn.Parameter 是 torch.Tensor 的一个子类。这意味着它继承了 Tensor 的所有属性和方法&#xff08;如 .data, .grad, .requires_grad, .shape, .dtype, .device, .backward() 等&#xff09;。它本身不是一个函数或模块&#xf…

【Linux】环境基础和开发工具

Linux 软件包管理器 yum 什么是软件包 在Linux下安装软件, 一个通常的办法是下载程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便…

多模态进化论:GPT-5V图文推理能力在工业质检中的颠覆性应用

前言 前些天发现了一个巨牛的人工智能免费学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站 &#x1f680;《多模态进化论&#xff1a;GPT-5V图文推理能力在工业质检中的颠覆性应用》 副标题&#xff1a;2025年实测报告显…

Linux实现一主二从模式

主从复制&#xff1a; 复制概念中分为两类数据库&#xff0c;一类是主数据库&#xff08;master&#xff09;&#xff0c;一类是从数据&#xff08;slave&#xff09;&#xff0c;主 数据库可以进行读写操作&#xff0c;并把写的操作同步给从数据库&#xff0c;一般从数据库是只…

大势智慧亮相第十八届中国智慧城市大会

6月26日-28日&#xff0c;第十八届中国智慧城市大会在武汉盛大举行。本次大会以“数智赋能城市创新协同共治发展蓝图”为主题&#xff0c;汇聚了李德仁、刘经南等八位院士及全国智慧城市领域的专家学者、行业精英&#xff0c;共同探讨行业发展新方向。作为实景三维技术领域领军…

Xbox One 控制器转换为 macOS HID 设备的工作原理分析

Xbox One 控制器转换为 macOS HID 设备的工作原理分析 源代码在 https://github.com/guilhermearaujo/xboxonecontrollerenabler.git 这个工程的核心功能是将 Xbox One 控制器&#xff08;macOS 原生不支持的设备&#xff09;转换为 macOS 可识别的 HID 设备。这里通过分析代…

Notepad++ 复制宏、编辑宏的方法

Notepad具有宏的功能&#xff0c;能够记录当下所有操作&#xff0c;后续只需要一键就可以重复执行&#xff0c;大大减少工作量。 比如我需要把很多文件里面的字符完成替换&#xff0c;那我只需要把替换的过程录制成宏&#xff0c;后续打开文件就可以一键替换了。 但是Notepad的…

Oracle:报错jdbc:oracle:thin:@IP地址:端口:实例名, errorCode 28001, state 99999

报错原因是oracle密码过期&#xff0c;根本解决办法是让密码不再过期&#xff0c;永久有效。具体操作记录一下。 cmd命令行输入&#xff1a; sqlplus / as sysdba修改Oracle密码期限为无限&#xff1a; SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;SQL&…

Apipost 签约中原消费金融:共建企业级 API 全链路协作平台,推动接口管理与测试智能化升级

随着企业数字化转型的不断深化&#xff0c;API 正在从技术细节演变为业务协作的核心枢纽。特别是在金融行业&#xff0c;微服务架构、系统联动、合规要求等多重因素交织下&#xff0c;接口数量激增、管理复杂度提升、质量保障难度加大。近日&#xff0c;Apipost 与中原消费金融…

AntV L7 之LarkMap 地图

一、安装$ npm install -S antv/l7 antv/larkmap # or $ yarn add antv/l7 antv/larkmap二、引入包import type { LarkMapProps, LineLayerProps } from antv/larkmap; import { LarkMap, LineLayer, Marker } from antv/larkmap;三、config配置const layerOptions:Omit<Lin…

客户案例 | 某新能源车企依托Atlassian工具链+龙智定制开发服务,打造符合ASPICE标准的研发管理体系

客户案例 ASPICE标准已成为衡量整车厂及供应商研发能力的重要标尺。某知名车企在其重点项目研发过程中&#xff0c;面临着ASPICE 4.0评估认证的挑战——项目团队缺乏体系经验、流程规范和数字化支撑工具。 为帮助该客户团队顺利通过ASPICE认证并提升研发合规性&#xff0c;At…

stm32的USART使用DMA配置成循环模式时发送和接收有着本质区别

stm32的USART使用DMA配置成循环模式时发送和接收有着本质区别&#xff0c;不要被网上误导了。发送数据时会不停的发送数据&#xff0c;而接收只有有数据时才会接收&#xff0c;没有数据时就会挂起等待。 一、触发机制的差异‌ ‌发送方向&#xff08;TX&#xff09;——状态驱…

银河麒麟系统上利用WPS的SDK进行WORD的二次开发

目录 1.下载安装包 2.安装WPS 3.获取示例代码 4.编译示例代码 5.完整示例代码 相关链接 1.下载安装包 去wps的官网 https://www.wps.cn/ 下载linux版本。 下载的安装包名称为&#xff1a;wps-office_12.8.2.21176.AK.preload.sw_amd64.deb, 官网有介绍适用于Ubuntu、麒麟…

人工智能之数学基础:如何判断正定矩阵和负定矩阵?

本文重点 正定矩阵和负定矩阵是线性代数中的重要概念,在优化理论、数值分析、统计学等领域有广泛应用。 正定矩阵(负定矩阵) 如上所示,我们可以看到满足上面的性质的时候,我们可以认为矩阵A称为正定矩阵(负定矩阵) 举例: 半正定(半负定) 如果≥或者≤的时候,我们认为矩…