Leetcode 39. 组合总和
思路 回溯
还是以递归全排列+剪枝来搞,套用回溯模板。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | var res [][]int func combinationSum(candidates []int, target int) [][]int { res = make([][]int, 0) backTracking([]int{}, candidates, target, 0) return res } func Sum(nums []int) (res int) { //求和函数,应该可以继续优化 for _, item := range nums { res += item } return } func backTracking(temp []int, nums []int, target int, start int) { if Sum(temp) == target { //如果当前的和已经满足条件,结束此分支 tmp := make([]int, len(temp)) copy(tmp, temp) res = append(res, tmp) //将当前路径的结果添加到最终结果数组中 return } if Sum(temp) > target { //如果当前数组的和已经超过target 直接停止后续节点的递归 return } length := len(nums) for i := start; i < length; i++ { temp = append(temp, nums[i]) backTracking(temp, nums, target, i) temp = temp[:len(temp)-1] } } |
__EOF__

本文作者:SoutherLea
本文链接:https://www.cnblogs.com/lizhengnan/p/16250933.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/lizhengnan/p/16250933.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异