zoukankan      html  css  js  c++  java
  • Subsets <leetcode>

    Given a set of distinct integers, S, return all possible subsets.

    Note:

    • Elements in a subset must be in non-descending order.
    • The solution set must not contain duplicate subsets.

    For example,
    If S = [1,2,3], a solution is:

    [
      [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []
    ]

    算法:该题的解空间类似一个排列树,但是又不完全相同,树种根到所有节点的路径是一个解,还有不要忘了空集。直接用深度优先遍历解决:

    10/10test cases passed
    Runtime::44ms
     1 class Solution {
     2 public:
     3     vector<vector<int> > subsets(vector<int> &S) {
     4        vector<vector<int>> result;
     5        int len=S.size();
     6        if(S.size()<=0)  return result;
     7         sort(S.begin(),S.end());
     8         vector<int>  temp;
     9         doit(result,S,0,len,temp);
    10         return result;
    11     }
    12     void doit(vector<vector<int>> &result,vector<int> &s,int dep,int len,vector<int> &temp)
    13     {
    14         result.push_back(temp);
    15         for(int i=dep;i<len;i++)
    16         {
    17             temp.push_back(s[i]);
    18             doit(result,s,i+1,len,temp);
    19             temp.pop_back();
    20         }
    21     }
    22 };
  • 相关阅读:
    Friends ZOJ
    2^x mod n = 1 HDU
    Paint the Grid Reloaded ZOJ
    Treap 模板
    bzoj进度条
    。。。
    bzoj
    。。。
    bzoj
    题解continue
  • 原文地址:https://www.cnblogs.com/sqxw/p/3976604.html
Copyright © 2011-2022 走看看