mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
添加 0216.组合总和III go版本
添加 0216.组合总和III go版本
This commit is contained in:
@ -284,6 +284,37 @@ class Solution:
|
|||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
|
||||||
|
|
||||||
|
> 回溯+减枝
|
||||||
|
|
||||||
|
```go
|
||||||
|
func combinationSum3(k int, n int) [][]int {
|
||||||
|
var track []int// 遍历路径
|
||||||
|
var result [][]int// 存放结果集
|
||||||
|
backTree(n,k,1,&track,&result)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
func backTree(n,k,startIndex int,track *[]int,result *[][]int){
|
||||||
|
if len(*track)==k{
|
||||||
|
var sum int
|
||||||
|
tmp:=make([]int,k)
|
||||||
|
for k,v:=range *track{
|
||||||
|
sum+=v
|
||||||
|
tmp[k]=v
|
||||||
|
}
|
||||||
|
if sum==n{
|
||||||
|
*result=append(*result,tmp)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for i:=startIndex;i<=9-(k-len(*track))+1;i++{//减枝(k-len(*track)表示还剩多少个可填充的元素)
|
||||||
|
*track=append(*track,i)//记录路径
|
||||||
|
backTree(n,k,i+1,track,result)//递归
|
||||||
|
*track=(*track)[:len(*track)-1]//回溯
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
javaScript:
|
javaScript:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
Reference in New Issue
Block a user