Given a set of distinct integers, nums, return all possible subsets.
Note: The solution set must not contain duplicate subsets.
For example,If nums = [1,2,3]
, a solution is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]answer:class Solution {public: vector<vector<int>> subsets(vector<int>& nums) { int length = nums.size(); vector<vector<int>> result; vector<int> temp; result.push_back(temp); if(length == 0) return result; for(int k = 1; k <= length; k ++){ mySub(-1,length - 1,k,nums,temp,result); } return result; } void mySub(int index, int length, int k, vector<int>& nums, vector<int> & temp, vector<vector<int>> & result){ if(index > length || k < 0) return; if(k == 0){ result.push_back(temp); return; } for(int i = index + 1; i <= length; i ++){ temp.push_back(nums[i]); mySub(i,length,k - 1,nums,temp,result); temp.pop_back(); } }};
新闻热点
疑难解答