LeetCode題解 78 子集

2021-09-26 06:53:39 字數 750 閱讀 5343

給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集(冪集)。

說明:解集不能包含重複的子集。

示例:輸入: nums = [1,2,3]

輸出:[

[3],

[1],

[2],

[1,2,3],

[1,3],

[2,3],

[1,2],

]與【leetcode題解】77. 組合 的解法很相似

組合的問題 --->  排行有多少種 ---->共2^n種 ------>建立每一種位串到陣列元素的對映,如對於[ 1,3,4,7 ] ,位串 1010 對應於子集合 [ 1 , 4 ]

子集合的組合有 2^n 種,可以用位串證明:[ 空集 ] 、[ 1 ] 、[ 1, 0 ] 、[ 1 , 1 ].......到 [ 1 , 1 ,..... 1, 1 ](總共n位1) 的集合個數 , 或用二項式展開公式證明,又或者 每乙個集合元素均有可能被選入或未被選入(同位串)。

位串res間通過 & 1運算可以得出此刻陣列中index指向位置是1還是0,如果是1,則取出nums[index]存入list,然後位串res右移一位,繼續判斷

效率貌似沒到平均...尷尬

class solution 

index++;

res = res>>1;

}ret.add(new arraylist(tmp));

}return ret;

}}

78 子集 力扣(LeetCode)

給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 求乙個陣列元素的所有組合 求乙個集合的冪集 回溯法 求乙個集合的冪集 用遞迴求解 class solutio...

LeetCode第78題 子集

給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 幫助理解 newsets 1 2 2 1,2 3 3 1,3 3 1,3 2,3 3 1,3 2,3 1,2...

LeetCode第78題子集

題目描述 給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。解題思路 對於backtrack函式 1 新增結果 2 for語句,在選擇列表中選擇 做選擇 templist.add nums i 回溯,進入下一層 backtrack list,te...