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
}

运行结果


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

相关推荐
daad7773 小时前
V4L2_mipi-csi
算法
2301_765703143 小时前
C++代码复杂度控制
开发语言·c++·算法
m0_708830963 小时前
C++中的享元模式实战
开发语言·c++·算法
naruto_lnq3 小时前
分布式计算C++库
开发语言·c++·算法
m0_706653233 小时前
模板编译期排序算法
开发语言·c++·算法
历程里程碑3 小时前
Linxu14 进程一
linux·c语言·开发语言·数据结构·c++·笔记·算法
木井巳3 小时前
【递归算法】验证二叉搜索树
java·算法·leetcode·深度优先·剪枝
m0_561359674 小时前
嵌入式C++加密库
开发语言·c++·算法
近津薪荼4 小时前
优选算法——双指针专题7(单调性)
c++·学习·算法
j445566114 小时前
C++中的职责链模式实战
开发语言·c++·算法