leetcode 78 子集(位運算求子集)

2021-10-09 15:21:22 字數 769 閱讀 7100

給定一組不含重複元素的整數陣列 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...