This commit is contained in:
VicRen
2020-12-23 10:11:40 +08:00
parent a6988017d0
commit 6e1b0bed8a
2 changed files with 71 additions and 0 deletions

32
20201223/main.go Normal file
View File

@@ -0,0 +1,32 @@
package main
import "sort"
func main() {
}
func find(target int, candidates []int) [][]int {
l := len(candidates)
var ret [][]int
sort.Ints(candidates)
for k, n := range candidates {
for j := 1; j < l-k-1; j++ {
sum := n
nums := []int{n}
for i := k + j; i < l; i++ {
num := candidates[i]
sum += num
if sum > target {
break
}
nums = append(nums, num)
if sum == target {
ret = append(ret, nums)
break
}
}
}
}
return ret
}

39
20201223/main_test.go Normal file
View File

@@ -0,0 +1,39 @@
package main
import (
"reflect"
"testing"
)
func Test_find(t *testing.T) {
type args struct {
target int
candidates []int
}
tests := []struct {
name string
args args
want [][]int
}{
{
"test1",
args{
8,
[]int{10, 1, 2, 7, 6, 1, 5},
},
[][]int{
{1, 7},
{1, 2, 5},
{2, 6},
{1, 1, 6},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := find(tt.args.target, tt.args.candidates); !reflect.DeepEqual(got, tt.want) {
t.Errorf("find() = %v, want %v", got, tt.want)
}
})
}
}