노트 제목 leetcode 브러시 (Golang) - (90) 하위 집합 II.

(90) 하위 집합 II

가능한 모든 부분 집합 (전원 설정), 중복, nums를 포함 반환 할 수 있습니다 정수의 집합을 감안할 때.

참고 :이 솔루션 세트는 중복 하위 집합을 포함 할 수 없습니다.

예:

입력 : [1,2,2-]
출력 :
[
[2]
[1],
[1,2,2-],
[2,2],
[1,2],
[]
]

func subsetsWithDup(nums []int) [][]int {
	res := [][]int{}
	lg := len(nums)
	sort.Ints(nums)
	for i := 0; i <= lg; i++ {
		dfs(nums, 0, i, []int{}, &res)
	}
	return res
}

func dfs(graph []int, src int, target int, path []int, paths *[][]int) {
	if len(path) == target {
		tmp := make([]int, target)
		copy(tmp, path)
		*paths = append(*paths, tmp)
	}

	for i := src; i < len(graph); i++ {
		if i > src && graph[i] == graph[i-1] {
			continue
		}
		dfs(graph, i+1, target, append(path, graph[i]), paths)
	}
}
게시 65 개 원래 기사 · 원의 칭찬 0 · 조회수 333

추천

출처blog.csdn.net/weixin_44555304/article/details/104365422