欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode 78. 子集

程序员文章站 2024-03-21 14:53:40
...

遍历数组
结果从空集开始,向已知的集合加入当前元素,将一个自己加到结果里面到最后一个元素是即为结果

#include <iostream>
#include <vector>
using namespace std;
#define debug(x) cout<<#x<<": "<<x<<endl;

class Solution {
public:
    vector<vector<int>> subsets(vector<int>& nums) {

        vector<vector<int>> temp1;
        vector<vector<int>> temp2;
        temp1.push_back({});
        //debug(temp1.size());
        for(int i=0;i<nums.size();i++){
            for(int j=0;j<temp1.size();j++){
                vector<int> ve = temp1[j];
                temp2.push_back(ve);
                ve.push_back(nums[i]);
                temp2.push_back(ve);
            }
            //swap(temp1,temp2);
            temp1 = temp2;
            temp2.clear();
        }
        return temp1;
    }
};

void disp(vector<vector<int>> ret){
    for(auto i:ret){
        for(auto j:i){
            cout<<j<<" ";
        }
        cout<<endl;
    }
    cout<<endl;
}
int main()
{
    Solution Solution1;
    vector<int> nums = {1,2,3,4,5};
    vector<vector<int>> ret = Solution1.subsets(nums);
    disp(ret);

    return 0;
}

相关标签: 子集