本文共 721 字,大约阅读时间需要 2 分钟。
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]
求子集问题可以转化成从集合中依次获取0-n个元素的过程。。。
然后调用n次dfs来向集合中获取元素。。。
代码如下:
class Solution {public: vector> subsets(vector & nums) { vector >ve; vector v1; int Size=nums.size(); ve.push_back(v1); if(Size==0) return ve; for (int i=1;i<=Size;i++) dfs (0,i,v1,0,ve,nums,Size); return ve; } void dfs (int num,int target,vector & v1,int loc,vector >& ve,vector & v,int Size) { if(num==target) { ve.push_back(v1); return; } for (int i=loc;i
转载地址:http://htaen.baihongyu.com/