回溯法求解组合问题
题目描述给你一个无重复元素的整数数组candidates和一个目标整数target找出candidates中可以使数字和为目标数target的 所有不同组合并以列表形式返回。你可以按任意顺序返回这些组合。candidates中的同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同则两种组合是不同的。对于给定的输入保证和为target的不同组合数少于150个。提示1 candidates.length 302 candidates[i] 40candidates的所有元素互不相同1 target 40思路解析组合搜索回溯算法 / DFS 问题。回溯法用于找出全部的可能状态并进行筛选。① 每次选取一个数字加入当前组合② 同一个数字可以重复使用所以递归时下标从当前位置开始③ 当 target 减到0说明找到了一个组合④ 当 target 小于当前比较对象说明该组合错误停止继续搜索ps : chat-gpt 实在是太好用了代码解析class Solution { private: vectorvectorint result; // 结果 vectorint path; //当前路径 void backtrak(const vectorint candidates,int target, int start){ // 如果剩余target为0说明路径正确 if(target 0){ result.push_back(path); return; } // 从start开始遍历 for(int i start; i candidates.size();i){ // 如果当前比较元素大于target后面的没必要比较肯定都大于 if(candidates[i]target){ break; } // 将当前target的candidates[i]压入path中 path.push_back(candidates[i]); // 递归调用还是从i开始因为元素可以重复使用 backtrak(candidates,target-candidates[i],i); // 如果路径正确直接就return了不会进行到这条语句 // 这条语句执行说明路径错误了将上一次压入path的元素出栈 path.pop_back(); } } public: vectorvectorint combinationSum(vectorint candidates, int target) { // 先排序方便剪枝 sort(candidates.begin(),candidates.end()); backtrak(candidates,target,0); return result; } };拓展提升如果要求一个数组可能的全排列且不能有重复该怎么处理给定一个可包含重复数字的序列nums按任意顺序返回所有不重复的全排列。示例 1输入nums [1,1,2]输出[[1,1,2], [1,2,1], [2,1,1]]示例 2输入nums [1,2,3]输出[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示1 nums.length 8-10 nums[i] 10思路解析依旧是回溯法但需要添加剪枝条件。假设有两个相同的值如果之前选择了那么之后不能再选择不然会出现重复的问题。下图展示了如果不适用去重会发生什么。代码解析class Solution { public: vectorvectorint result; void backtrack(vectorint nums, int start) { if (start nums.size()) { result.push_back(nums); return; } // 用 set 记录当前位置已经使用过的元素 unordered_setint used; for (int i start; i nums.size(); i) { // 如果这个值已经在当前位置使用过跳过 if (used.count(nums[i])) continue; used.insert(nums[i]); swap(nums[start], nums[i]); backtrack(nums, start 1); swap(nums[start], nums[i]); } } vectorvectorint permuteUnique(vectorint nums) { sort(nums.begin(), nums.end()); backtrack(nums, 0); return result; } };

相关新闻

AI赋能招聘:FunctionCalling精准匹配岗位简历

AI赋能招聘:FunctionCalling精准匹配岗位简历

13-1 利用提示词工程计算岗位匹配度 13-2 Function Calling 业务背景 13-3 Function Calling 的工作原理 13-4 Function Calling 入门案例 13-5 Function Calling 集成简历学历外部接口一、知识点梳理1.什么是Function Calling大模型不能直接操作数据库、调用后端接口。 我们预…

2026/8/10 9:20:06 阅读更多 →
Go 的 io.Reader/Writer 组合实战:io.Copy、TeeReader、MultiWriter 优雅处理数据流

Go 的 io.Reader/Writer 组合实战:io.Copy、TeeReader、MultiWriter 优雅处理数据流

Go 的 io.Reader/Writer 组合实战:io.Copy、TeeReader、MultiWriter 优雅处理数据流 写 Go 处理数据的时候,新手容易犯一个习惯病:不管三七二十一先 io.ReadAll 把数据全读进 []byte,再在内存里搓。文件小没事,一旦碰上几百 MB 的上传、下载或日志流,内存直接吃满,OOM 找上门。…

2026/8/10 9:20:06 阅读更多 →
容度原理:一套可以“读取”宇宙任何星体的底层逻辑容度原理的11条原理不是“针对地球物理”或“针对矿物”的特殊规则,它们是自指系统在任意尺度上都必须遵守的普适规律。

容度原理:一套可以“读取”宇宙任何星体的底层逻辑容度原理的11条原理不是“针对地球物理”或“针对矿物”的特殊规则,它们是自指系统在任意尺度上都必须遵守的普适规律。

容度原理:一套可以“读取”宇宙任何星体的底层逻辑容度原理的11条原理不是“针对地球物理”或“针对矿物”的特殊规则,它们是自指系统在任意尺度上都必须遵守的普适规律。基于这个判断,容度原理可以对任何一个天体进行推演——只需要知道它的…

2026/8/10 9:19:06 阅读更多 →

最新新闻

无需Steam账号也能下载创意工坊模组:WorkshopDL图形化下载器完全指南

无需Steam账号也能下载创意工坊模组:WorkshopDL图形化下载器完全指南

无需Steam账号也能下载创意工坊模组:WorkshopDL图形化下载器完全指南 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为跨平台游戏无法使用Steam创意工坊模组而…

2026/8/10 10:17:33 阅读更多 →
【会议征稿通知 | 四校联合主办 | JPCS出版 | EI 、Scopus稳定检索】第九届机械工程与智能制造国际会议(WCMEIM 2026)

【会议征稿通知 | 四校联合主办 | JPCS出版 | EI 、Scopus稳定检索】第九届机械工程与智能制造国际会议(WCMEIM 2026)

第九届机械工程与智能制造国际会议(WCMEIM 2026) 2026 9th World Conference on Mechanical Engineering and Intelligent Manufacturing 2026年9月18-20日 | 武汉 大会官网:http://www.wcmeim.org 截稿时间:见官网&#xff08…

2026/8/10 10:17:33 阅读更多 →
AI基础设施竞赛:从芯片到能源,解析xAI与SpaceX的硬核基建对决

AI基础设施竞赛:从芯片到能源,解析xAI与SpaceX的硬核基建对决

最近,AI领域的竞争焦点似乎正从模型本身,悄悄转向一个更底层、更“硬核”的战场: AI基础设施 。当大家还在争论哪个大模型参数更多、上下文更长时,马斯克旗下的两家公司——xAI和SpaceX——已经卷起袖子,在数据中心、…

2026/8/10 10:17:33 阅读更多 →
机器学习在中文书目自动分类中的应用与实践

机器学习在中文书目自动分类中的应用与实践

1. 项目背景与核心价值 中文书目自动分类是图书馆数字化管理、学术资源整合和知识图谱构建的基础环节。传统人工分类方式存在效率低、主观性强、标准不统一等问题。我们团队开发的这套基于机器学习的自动分类系统,通过三种经典算法(SVM、随机森林、AdaBo…

2026/8/10 10:17:33 阅读更多 →
MelonLoader完整指南:Unity游戏模组开发的终极解决方案

MelonLoader完整指南:Unity游戏模组开发的终极解决方案

MelonLoader完整指南:Unity游戏模组开发的终极解决方案 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader MelonLoader…

2026/8/10 10:17:33 阅读更多 →
Vibe Coding实践:用JSON配置与Spring Boot快速构建全栈应用

Vibe Coding实践:用JSON配置与Spring Boot快速构建全栈应用

在实际项目开发中,我们常常面临一个矛盾:一方面,我们希望快速构建原型、验证想法,将创意转化为可交互的界面;另一方面,传统的软件开发流程,从环境搭建、框架选型到代码编写、调试部署&#xff0…

2026/8/10 10:16:32 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →