题目描述: 幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
思路: 遍历所有nums 第1轮:[] 第2轮:[]、[1] 第3轮:[]、[1]、[2]、[1,2] 第4轮:[]、[1]、[2]、[1,2]、[3]、[1,3]、[2,3]、[1,2,3]
代码如下:
class Solution { public: vector<vector<int>> subsets(vector<int>& nums) { vector<vector<int>>res; res.push_back({}); int i=0; while(i<nums.size()){ int n=res.size(); for(int j=0;j<n;j++){ vector<int>tmp=res[j]; tmp.push_back(nums[i]); res.push_back(tmp); } i++; } return res; } };