【LeetCode 78 Subsets】

Given a set of distinct integers, nums, return all possible subsets (the power set).

Note: The solution set must not contain duplicate subsets.

Example:

Input: nums = [1,2,3]
Output:
[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]
class Solution {
public:
    vector<vector<int>> subsets(vector<int>& nums) {
        vector<vector<int>> vec_subsets;
        list<vector<int>> list_subsets;
        vector<int> subset;
        list_subsets.push_back(subset);
        
        int len = nums.size();
        if(len > 0){
            for(int i = 0; i < len ; i++){
                for (auto it = list_subsets.begin(); it != list_subsets.end(); it++){
                    subset = *it;
                    subset.push_back(nums[i]);
                    list_subsets.insert(it, subset);
                    subset.clear();
                }
            }
        }
        
        vec_subsets.resize(list_subsets.size());
        copy(list_subsets.begin(), list_subsets.end(), vec_subsets.begin());
        return vec_subsets;
        
    }
};

猜你喜欢

转载自blog.csdn.net/lqy0927/article/details/82021161
今日推荐