給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集(冪集)。可以使用0-1序列來表示每個子集,0表示不包含此元素,1表示包含此元素。說明:解集不能包含重複的子集。
示例:輸入: nums = [1,2,3]
輸出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], ]
例如:[1] -> 100
[1, 2] -> 110
[1, 2, 3] -> 111
而乙個包含n個元素的集合,其子集個數為2^n正好對應000~111
class
solution
return res;
}}
dfs(pos, n) 表示 pos:當前處理元素的位置 n:元素總數
重點理解:
1.當進行到dfs(pos, n)時:①[0, pos-1]已經確定 ②[pos, n)未確定 ③正在確定pos
2.確定pos位置有兩個行為:①選取 ②不選取
3.①選取 -> 將其add到列表中 ②不選取 -> remove列表末尾的元素
class
solution
sub.
add(nums[pos]);
// 取->新增這個位置的元素
dfs(pos +
1, nums)
;// 遞迴下乙個位置
sub.
remove
(sub.
size()
-1);
// 不取->回溯!
dfs(pos +
1, nums)
;// 遞迴下乙個位置
}public list
>
subsets
(int
nums)
}
leetcode 78 子集(位運算求子集)
給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 分析 含有n個元素的集合共有 1 一位後與 1的方式判斷最後一位是0還是1,如果是1,就把對應位置的數加入到...
leetcode78子集 中等
給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 要列出陣列的所有子集,因為陣列是不含重複元素的,所以對於每乙個位置的數字,有兩個選擇,選或者不選。可以畫出以...
LeetCode 78 子集 Go 實現
子集 給你乙個整數陣列 nums 陣列中的元素 互不相同 返回該陣列所有可能的子集 冪集 解集 不能 包含重複的子集。你可以按 任意順序 返回解集。示例 1 輸入 nums 1,2,3 輸出 1 2 1,2 3 1,3 2,3 1,2,3 示例 2 輸入 nums 0 輸出 0 func subse...