Bootstrap

幂集

/*

幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。

说明:解集不能包含重复的子集。

示例:

 输入: nums = [1,2,3]
 输出:
[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/power-set-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

*/ 

 

vector<vector<int>> ans;

    void TraceBack(vector<int>& nums, vector<int>& temp, int length, int index) {

        

        ans.push_back(temp);

        for(int i = index; i < length; ++i) {

            temp.push_back(nums[i]);

            TraceBack(nums, temp, length, i + 1);

            temp.pop_back();

        }

    }

    vector<vector<int>> subsets(vector<int>& nums) {

        vector<int> temp;

        TraceBack(nums, temp, nums.size(), 0);

        return ans;

    }

;