Leetcode—39. 组合总和【中等】

2025每日刷题(235)

Leetcode---39. 组合总和

实现代码

go 复制代码
import (
	"slices"
	"sort"
)

func combinationSum(candidates []int, target int) [][]int {
	sort.Ints(candidates)
	path := []int{}
	var dfs func(start, res int)
	ans := [][]int{}
	dfs = func(start, res int) {
		if res == 0 {
			ans = append(ans, slices.Clone(path))
			return
		}

		if res < candidates[start] {
			return
		}

		for i := start; i < len(candidates); i++ {
			path = append(path, candidates[i])
			dfs(i, res-candidates[i])
			path = path[:len(path)-1]
		}
	}
	dfs(0, target)
	return ans
}

运行结果


之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
techdashen35 分钟前
Go 1.26 新增 `bytes.Buffer.Peek`:只看数据,不移动读取位置
开发语言·后端·golang
Reart40 分钟前
Leetcode 198.打家劫舍(716)
后端·算法
Jerry1 小时前
LeetCode 110. 平衡二叉树
算法
玖玥拾1 小时前
C++ 数据结构 八大基础排序算法专题
数据结构·c++·算法·排序算法
Tim_101 小时前
【C++】017、new/delete与malloc/free的区别
java·数据结构·算法
从零开始的代码生活_2 小时前
C++ list 原理与实践:双向链表、迭代器与简化实现
开发语言·c++·后端·学习·算法·链表·list
cszn20262 小时前
AI如何自动识别安全文明施工废标风险?智能评审项目实践
经验分享
ttod_qzstudio3 小时前
【软考算法】软件设计师下午第四题之动态规划:0-1 背包与最长公共子序列的“填表艺术“
算法·动态规划·软考
ttwuai3 小时前
Go 后台接口 401/403 排查:JWT 过期、刷新请求和权限码怎么定位
开发语言·golang·状态模式
柒和远方3 小时前
LeetCode 139. 单词拆分 —— 从暴力回溯到 DP 完全背包
javascript·python·算法