1. 程式人生 > 其它 >ASEMI整流橋KBU2510引數規格,KBU2510尺寸特徵

ASEMI整流橋KBU2510引數規格,KBU2510尺寸特徵

39. 組合總和 - 力扣(LeetCode)

思路 回溯

還是以遞迴全排列+剪枝來搞,套用回溯模板。

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]
	}
}