給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集(冪集)。
說明:解集不能包含重複的子集。
示例:輸入: nums = [1,2,3]
輸出:[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
]分析:
含有n個元素的集合共有(1<>)一位後與(&)1的方式判斷最後一位是0還是1,如果是1,就把對應位置的數加入到vector中。
舉個例子,給定集合[1,2,3,4,5,6,7,8,9],對於二進位制數101100011,表示選擇集合中的1,、2、6、7、9(注意是二進位制數要倒著看)。
另外,注意一下本題中返回值的處理方式。由於題目要求返回二維vector,程式首先宣告乙個一維vector,然後宣告乙個二維vector,對於第i個數對應的狀態,用一維vector儲存,然後用二維vector儲存一維vector,同時清空一維vector。
class
solution
t=t>>1;
//右移一位,原來的倒數第二位變成了最後一位
} ans2.
push_back
(ans1)
;//外迴圈用二維vector
ans1.
clear()
;//內迴圈的一維vector清空
}return ans2;}}
;
LeetCode 78 子集 位運算 回溯演算法
給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 可以使用0 1序列來表示每個子集,0表示不包含此元素,1表示包含此元素。例如 1 100 1,2 110 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...