zoukankan      html  css  js  c++  java
  • 78.Subsets

    // Non-recursion
    class Solution {
    public:
        vector<vector<int> > subsets(vector<int> &S) {
            vector<vector<int> > res(1);
            sort(S.begin(), S.end());
            for (int i = 0; i < S.size(); ++i) {
                int size = res.size();
                for (int j = 0; j < size; ++j) {
                    res.push_back(res[j]);
                    res.back().push_back(S[i]);
                }
            }
            return res;
        }
    };
    
    // Recursion
    class Solution {
    public:
        vector<vector<int> > subsets(vector<int> &S) {
            vector<vector<int> > res;
            vector<int> out;
            sort(S.begin(), S.end());
            getSubsets(S, 0, out, res);
            return res;
        }
        void getSubsets(vector<int> &S, int pos, vector<int> &out, vector<vector<int> > &res) {
            res.push_back(out);
            for (int i = pos; i < S.size(); ++i) {
                out.push_back(S[i]);
                getSubsets(S, i + 1, out, res);
                out.pop_back();
            }
        }
    };
    
  • 相关阅读:
    多姿多彩的线程
    字典操作
    字符串语法
    购物车
    列表常用语法
    整数划分问题
    计算N的阶层
    判断是否是素数
    快速排序
    冒泡排序
  • 原文地址:https://www.cnblogs.com/smallredness/p/10675754.html
Copyright © 2011-2022 走看看