Leetcode 78. Subsets C++ beat100%

Leetcode 78. Subsets C++ beat100%

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],
  []
]

在迭代所有数字时,对于每个新数字,我们可以选择它,也可以不选择它
1,如果选择,只需将当前数字添加到每个现有子集。
2,如果没有选择,只保留所有现有的子集。
我们只是将两者结合起来。

例如,{1,2,3}在内部我们有一个结果集合[[]] 
考虑1,如果不使用它,仍然[],如果使用1,将它添加到[],所以我们有[1]现在
结合它们,现在我们有[[],[1]]作为所有可能的子集

接下来考虑2,如果不使用它,我们仍然有[[],[1]],如果使用2,只需加2到每个前面的子集,我们有[2],[1,2] 
结合它们,现在我们有[[],[1],[2],[1,2]]

接下来考虑3,如果不使用它,我们仍然有[[],[1],[2],[1,2]],如果使用3,只需在每个前面的子集中添加3,我们[[3], [1,3],[2,3],[1,2,3]] 
合并它们,现在我们有[[],[1],[2],[1,2],[3],[1 ,3],[2,3],[1,2,3]]

class Solution {
public:
    vector> subsets(vector& nums) {
        vector> result;
        vector item;
        result.push_back(item);
        for(int i =0;i item=result[j];
                item.push_back(nums[i]);
                result.push_back(item);
            }
        }
        return result;
    }
};


你可能感兴趣的:(leetcode,C++)