From 2e8ba2bbb8e27132129d83c64795ba8feaed39d2 Mon Sep 17 00:00:00 2001 From: X-shuffle <53906918+X-shuffle@users.noreply.github.com> Date: Sat, 19 Jun 2021 20:25:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=200216.=E7=BB=84=E5=90=88?= =?UTF-8?q?=E6=80=BB=E5=92=8CIII=20go=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加 0216.组合总和III go版本 --- problems/0216.组合总和III.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/problems/0216.组合总和III.md b/problems/0216.组合总和III.md index 9f75b23d..67e67ad0 100644 --- a/problems/0216.组合总和III.md +++ b/problems/0216.组合总和III.md @@ -284,6 +284,37 @@ class Solution: 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: ```js