zoukankan      html  css  js  c++  java
  • LeetCode 78. 子集

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

    说明:解集不能包含重复的子集。

    示例:

    输入: nums = [1,2,3]
    输出:
    [
      [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []
    ]
     1 class Solution {
     2 public:
     3     int n;
     4     vector<vector<int>> ans;
     5     vector<int> v;
     6     vector<vector<int>> subsets(vector<int>& nums) {
     7         n = nums.size();
     8         if(n == 0)
     9         {
    10             ans.push_back(v);
    11         }
    12         else
    13             dfs(0,nums);
    14         return ans;
    15     }
    16     void dfs(int x,vector<int>& nums)
    17     {
    18         if(x == n)
    19         {
    20             ans.push_back(v);
    21             return ;
    22         }
    23         ans.push_back(v);
    24         for(int i = x;i < n;i++)
    25         {
    26             v.push_back(nums[i]);
    27             dfs(i + 1,nums);
    28             v.pop_back();
    29         }
    30     }
    31 };
     1 class Solution {
     2 public:
     3     vector<vector<int>> subsets(vector<int>& nums) {
     4     vector<vector<int>> res;
     5     res.push_back({});
     6     if(nums.size()==0) return res;
     7     for(auto i:nums)
     8     {
     9         int k=res.size();
    10         vector<vector<int>> tmp(res);
    11         for(int j=0;j<k;j++)
    12         {
    13             tmp[j].push_back(i);
    14             res.push_back(tmp[j]);
    15         }
    16         
    17     }
    18     return res;
    19     }
    20 };
     1 class Solution {
     2 public:
     3     vector<vector<int>> subsets(vector<int>& nums) {
     4         vector<vector<int>> ret;
     5         ret.push_back({});
     6         int size=nums.size();
     7         int subsize=pow(2,size);
     8         int hash=1;
     9         while(hash<subsize){
    10             vector<int> temp;
    11             for(int k=0;k<size;k++) {
    12                 int a=1<<k;
    13                 if(a&hash) {
    14                     temp.push_back(nums[k]);
    15                 }
    16             }
    17             ret.push_back(temp);
    18             hash++;
    19         }
    20         return ret;
    21     }
    22 };
  • 相关阅读:
    WIN8.1优化
    Iframe跨域嵌入页面自动调整高度的办法
    win8优化
    160多条Windows 7 “运行”命令
    用 C# 代码如何实现让你的电脑关机,重启,注销,锁定,休眠,睡眠
    system32下 exe文件作用
    html高度百分比分配
    Django启程篇
    自适应网页前端设计相关
    crontab定时任务及jar包等问题
  • 原文地址:https://www.cnblogs.com/Jawen/p/10868621.html
Copyright © 2011-2022 走看看