題目:
給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集(冪集)。
說明:解集不能包含重複的子集。
示例:
輸入: nums =
[1,2,3]
輸出:[
[1],
[2],
[3],
[1,2,3],
[1,3],
[2,3],
[1,2],
]
解題思路:大概的思路就是每個數字只有兩個選擇,要麼選擇,要麼不選擇。就是回溯演算法(深度優先搜尋)。想象一棵樹。
1.先寫出深度優先演算法函式;
函式定義:利用引用把值傳回主函式;
2.主函式呼叫
3.在樹的最底層把遍歷結果放在result裡
); //選擇nums,進一步 樹的左支
generate(i-1,nums,item,result)
; item.pop_back(
); //退一步
generate(i-1,nums,item,result);}
};注意:首先是結果的選擇,需要放在判斷if裡,如果到了樹的最底層,就把結果放在rusult裡
一開始並不需要把空的item放到result裡,因為最右端就是一條空的值。
leetcode78子集 中等
給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 要列出陣列的所有子集,因為陣列是不含重複元素的,所以對於每乙個位置的數字,有兩個選擇,選或者不選。可以畫出以...
leetcode題 78 子集(中等)
一 題目描述 78.子集 中等 給定一組不含重複元素的整數陣列 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...