Subsets

这题不好想,可参考:http://www.cnblogs.com/felixfang/p/3775712.html,思路很清楚。同理这种解法也满足有重复元素的情况。

 vector<vector<int>> subsets( vector<int> &S)
      {
          vector<vector<int>> res;
          vector<int> tmp;
          res.push_back(tmp);
          sort(S.begin(), S.end());

          if (S.size() == 0)return res;
          for (vector<int>::iterator ind = S.begin(); ind != S.end(); ind++)
          {
              int size = res.size();
              for (int i = 0; i < size; i++)
              {
                  vector<int> v;
                  for (vector<int>::iterator j = res[i].begin(); j != res[i].end(); j++)
                  {
                      v.push_back(*j);
                  }
                  v.push_back(*ind);
                  res.push_back(v);
              }
          }

          return res;
      }
View Code
原文地址:https://www.cnblogs.com/573177885qq/p/5676648.html