zoukankan      html  css  js  c++  java
  • Subsets

    Given a set of distinct integers, nums, 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 nums = [1,2,3], a solution is:

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

    思路:将nums数组先排序。然后依次枚举每一位在或者不在的情况。根据要求,当我们枚举了某一位为存在的情况时,则该位前面的数都不能再枚举了,因为要求结果是增长序列。此外,记得不要漏了空集的情况。

     1 class Solution {
     2 public:
     3     void help(vector<vector<int> >& res, vector<int>& nums, vector<int>& cur, int st)
     4     {
     5         if (st == nums.size())
     6             return;
     7         for (int i = st, n = nums.size(); i < n; i++)
     8         {
     9             cur.push_back(nums[i]);
    10             res.push_back(cur);
    11             help(res, nums, cur, i + 1);
    12             cur.erase(cur.begin() + cur.size() - 1);
    13         }
    14     }
    15     vector<vector<int>> subsets(vector<int>& nums) {
    16         sort(nums.begin(), nums.end(), less<int>());
    17         vector<vector<int> > res;
    18         vector<int> tem;
    19         res.push_back(tem);
    20         help(res, nums, tem, 0);
    21         return res;
    22     }
    23 };
  • 相关阅读:
    POJ2828
    Docker容器修改端口映射
    CentOS 7使用ISO镜像配置本地yum源
    Windows 自带的 Linux 子系统
    vue富文本编辑器插件vue-quill-editor使用
    修改docker容器存放位置
    Linux 硬盘相关操作
    centos7基础相关
    ubuntu-k8s搭建
    redhat 6.6 离线docker
  • 原文地址:https://www.cnblogs.com/fenshen371/p/4952872.html
Copyright © 2011-2022 走看看