zoukankan      html  css  js  c++  java
  • [LeetCode] 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],
      []
    ]

    解题思路:

     1 class Solution {
     2 public:
     3     vector<vector<int>> subsets(vector<int>& nums) {
     4         vector<vector<int>> result;
     5         if (nums.size() == 0) {
     6             return result;
     7         }
     8         
     9         sort(nums.begin(), nums.end());
    10         vector<int> elem;
    11         
    12         for (int i = 0; i <= nums.size(); ++i) {
    13             subsets(nums, i, 0, result, elem);
    14         }
    15         
    16         return result;
    17     }
    18 private:
    19     void subsets(const vector<int> &nums, int len, int cur, vector<vector<int>> &result, vector<int> &elem) {
    20         if (elem.size() == len) {
    21             result.push_back(elem);
    22             return;
    23         }
    24         
    25         for (int i = cur; i < nums.size(); ++i) {
    26             elem.push_back(nums[i]);
    27             subsets(nums, len, i + 1, result, elem);
    28             elem.pop_back();
    29         }
    30     }
    31 };
  • 相关阅读:
    DDD领域驱动设计的理解
    设计原则
    毫秒级的时间处理图片
    同步设施
    ASP.NET Core 中文文档
    Jenkins快速搭建持续集成
    刮刮卡
    网页WEB打印控件
    nginx+memcached+ftp上传图片+iis
    通过Jexus 部署 dotnetcore
  • 原文地址:https://www.cnblogs.com/skycore/p/5321518.html
Copyright © 2011-2022 走看看