mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 22:28:40 +08:00 
			
		
		
		
	* feat(go): support hash map chaining * feat(go): support hash map open address * feat(go): support simple hash * feat(go): support top k heap * feat(go): support subset sum I * feat(go): support subset sum native * feat(go): support subset sum II * fix(go): fix some problem
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// File: subset_sum_test.go
 | 
						|
// Created Time: 2023-06-24
 | 
						|
// Author: Reanon (793584285@qq.com)
 | 
						|
 | 
						|
package chapter_backtracking
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"strconv"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	. "github.com/krahets/hello-algo/pkg"
 | 
						|
)
 | 
						|
 | 
						|
func TestSubsetSumINaive(t *testing.T) {
 | 
						|
	nums := []int{3, 4, 5}
 | 
						|
	target := 9
 | 
						|
	res := subsetSumINaive(nums, target)
 | 
						|
 | 
						|
	fmt.Printf("target = " + strconv.Itoa(target) + ", 输入数组 nums = ")
 | 
						|
	PrintSlice(nums)
 | 
						|
 | 
						|
	fmt.Println("所有和等于 " + strconv.Itoa(target) + " 的子集 res = ")
 | 
						|
	for i := range res {
 | 
						|
		PrintSlice(res[i])
 | 
						|
	}
 | 
						|
	fmt.Println("请注意,该方法输出的结果包含重复集合")
 | 
						|
}
 | 
						|
 | 
						|
func TestSubsetSumI(t *testing.T) {
 | 
						|
	nums := []int{3, 4, 5}
 | 
						|
	target := 9
 | 
						|
	res := subsetSumI(nums, target)
 | 
						|
 | 
						|
	fmt.Printf("target = " + strconv.Itoa(target) + ", 输入数组 nums = ")
 | 
						|
	PrintSlice(nums)
 | 
						|
 | 
						|
	fmt.Println("所有和等于 " + strconv.Itoa(target) + " 的子集 res = ")
 | 
						|
	for i := range res {
 | 
						|
		PrintSlice(res[i])
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestSubsetSumII(t *testing.T) {
 | 
						|
	nums := []int{4, 4, 5}
 | 
						|
	target := 9
 | 
						|
	res := subsetSumII(nums, target)
 | 
						|
 | 
						|
	fmt.Printf("target = " + strconv.Itoa(target) + ", 输入数组 nums = ")
 | 
						|
	PrintSlice(nums)
 | 
						|
 | 
						|
	fmt.Println("所有和等于 " + strconv.Itoa(target) + " 的子集 res = ")
 | 
						|
	for i := range res {
 | 
						|
		PrintSlice(res[i])
 | 
						|
	}
 | 
						|
}
 |