代码拉取完成,页面将自动刷新
package main
import (
"fmt"
"sort"
)
func combinationSum4(nums []int , target int ) (res int) {
// 0.可能需要加入剪枝的逻辑
sort.Ints(nums)
trace, book := 0, make(map[int]int)
var depth func()
depth = func() {
if _ , ok := book[trace] ; ok{
res ++
return
}
if trace > target {
return
}
if trace == target {
res ++
return
}
count := res
for i := 0 ; i < len(nums) ; i ++ {
trace += nums[i]
depth()
trace -= nums[i]
}
book[trace] = res - count
}
depth()
return res
}
func main() {
fmt.Println(combinationSum4([]int{1,5,8},10))
}
// 181997601
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。