子集—leetcode78
生活随笔
收集整理的這篇文章主要介紹了
子集—leetcode78
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一組不含重復元素的整數數組?nums,返回該數組所有可能的子集(冪集)。
說明:解集不能包含重復的子集。
示例:
輸入: nums = [1,2,3]
輸出:
[
? [3],
??[1],
??[2],
??[1,2,3],
??[1,3],
??[2,3],
??[1,2],
??[]
]
?思路1:首先有多少個num,就會有2<<num個子集(加上空集),那么從0~2<<num-1去遍歷,把每個數中所有1的index對應的number都塞到一個vector中就是一個子集,這樣去遍歷即可。
?
class Solution { public:vector<vector<int>> subsets(vector<int>& nums) {int n = nums.size();int substrNum = 1<<n;vector<vector<int>> result;for(int i=0;i<substrNum;++i){int shift=0; int temp = i;vector<int> temp_result;while(temp){if(temp&1){temp_result.push_back(nums[shift]);}temp = temp>>1;shift++;}result.push_back(temp_result);}return result;} };思路2:?回溯法
總結
以上是生活随笔為你收集整理的子集—leetcode78的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 颜色分类—leetcode75
- 下一篇: 柱状图中最大的矩形—leetcode84