![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/99b88427bc9ce0dc.webp?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55m96YCf6b6Z546L55qE5Zue55y4,size_14,color_FFFFFF,t_70,g_se,x_16)
思路:
1.主体思路跟“组合”一致
2.退出条件改为tempindex超出
3.只要长度小于等于len都可以加入res
代码:
func subsets(nums []int) [][]int {res = [][]int{}numsLen := len(nums)find(0, []int{}, nums, numsLen)return res
}func find(tempindex int, tempres, nums []int, k int) {fmt.Println(tempres)if tempindex > k {return}if len(tempres) <&#61; k {comb :&#61; make([]int, len(tempres))copy(comb, tempres)res &#61; append(res, comb)}for i :&#61; tempindex; i < k; i&#43;&#43; {tempres &#61; append(tempres, nums[i])find(i &#43; 1, tempres, nums, k)tempres &#61; tempres[:len(tempres) - 1]}
}
位运算代表01&#xff1a;
func subsets(nums []int) (ans [][]int) {n :&#61; len(nums)