题解 | #加起来和为目标值的组合#

加起来和为目标值的组合

https://www.nowcoder.com/practice/172e6420abf84c11840ed6b36a48f8cd

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param target int整型 
 * @param nums int整型一维数组 
 * @return int整型二维数组
*/
func combinationCount( target int ,  nums []int ) [][]int {
    // write code here
	res := make([][]int, 0)
	var dfs func(start int, tmpSum int, tmp []int)
	dfs = func(start int, tmpSum int, tmp []int) {
		if tmpSum == target {
			res = append(res, append([]int(nil), tmp...))
			return
		}
		if tmpSum > target {
			return
		}
		for i := start; i < len(nums); i++ {
			tmp = append(tmp, nums[i])
			dfs(i, tmpSum+nums[i], tmp)
			tmp = tmp[:len(tmp)-1]
		}
	}
	dfs(0, 0, []int{})
	return res
}

全部评论

相关推荐

迷茫的大四🐶:看来已经准备换人了
点赞 评论 收藏
分享
09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务