給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集(冪集)。
說明:解集不能包含重複的子集。
該題目來自力扣題庫
示例輸入: nums = [1,2,3]
輸出:[,[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
思路使用位圖法
如果該陣列的長度是n,那麼該陣列的所有子集數目是2^n.
使用兩層迴圈,外層迴圈的次數是子集的個數;內層迴圈的次數是陣列的長度,是用來判斷 i 的二進位制哪一位是1,哪一位是0。如果是1,那麼會輸出這一位所對應的陣列的內容,如果是0,不會輸出。
判斷 i 的二進位制哪個位是0或1,看i>>j%2等於1還是等於0.
}}總結
arraylist是集合的一種實現,實現了介面list,list介面繼承了collection介面。
1.建立乙個arraylist集合
arraylist
list=
newarraylist();
2.建立乙個初始化長度為100的arraylist集合
list
initlist =
newarraylist
<
>
(100
);
3.arraylist常用方法
add
(e element)
;//新增元素
remove
(int index)
;//刪除元素
set(
int index, e element)
;//通過傳入的數字下標找到對應的位置,替換其中的元素,前提也需要首先判斷傳入的陣列下標是否越界
get(
int index)
;//通過下標查詢即可
size()
;//獲取集合長度,通過定義在arraylist中的私有變數size得到
isempty()
;//是否為空,通過定義在arraylist中的私有變數size得到
contains
(object o)
;//是否包含某個元素,通過遍歷底層陣列elementdata,通過equals或==進行判斷
clear()
;//集合清空,通過遍歷底層陣列elementdata,設定為null
力扣 78 子集
給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 利用位數為陣列長度的二進位制數,這個二進位制數所能表示的元素個數剛好等於這個冪集的子集的個數,且二進位制數的...
78 子集 力扣(LeetCode)
給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 求乙個陣列元素的所有組合 求乙個集合的冪集 回溯法 求乙個集合的冪集 用遞迴求解 class solutio...
子集(力扣第78題)
題目 給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 分析 子集的大小可以是從0到nums.length,也就是可以為空集,也可以和原始集合一模一樣。此題還...