1.辅助数组

设置一个保存结果的数组res,首先插入空元素

然后遍历Nums数组,对于数组中的每一个元素,都遍历res中每一个集合res[j],将Nums[i]插如到res[j],然后在插入到res中

如 1 2 3

初始为[]

对1,res为[],插入1,变成[],1

对2,res为[],1 插入2,变成[]、1、2、1 2

对3,res为[]、1、2、1 2 插入3 ,变成[]、1、2、1 2、3、1 3、2 3、1 2 3

代码如下:

class Solution {
public:vector<vector<int>> subsets(vector<int>& nums) {//模拟手动,如数字为3 1初始为[],插入3,则变为[]、3,插入1,则变为[]、3、1、3 1vector<vector<int>>res;res.push_back({});int i=0;while(i<nums.size()){int size=res.size();for(int j=0;j<size;j++){vector<int> ans(res[j].begin(),res[j].end());ans.push_back(nums[i]);res.push_back(ans);}i++;}return res;}
};

2.位运算

考虑1 2 3,对于每一个元素都有插入与不插入,设插入对应1 ,不插入对应0,

这里将1 2 3 变为3 2 1 更好理解,如下:

0 0 0     对应0          对应[]

0 0 1     对应1          对应1

0 1 0     对应2          对应2

0 1 1     对应3          对应1 2

1 0 0    对应4           对应3

1 0 1    对应5           对应3 1

1 1 0    对应6           对应3 2

1 1 1   对应7             对应3 2 1

长为len的数组集合个数为Pow(2,len)

代码如下:

class Solution {
public:vector<vector<int>> subsets(vector<int>& nums) {//模拟手动,如数字为3 1初始为[],插入3,则变为[]、3,插入1,则变为[]、3、1、3 1vector<vector<int>>res;res.push_back({});for(int i=1;i<pow(2,nums.size());i++){vector<int> ans;int num=i,idx=0;while(num!=0){if((num&1)==1)ans.push_back(nums[idx]);num>>=1;idx++;}res.push_back(ans);}return res;}
};

leetcode幂集相关推荐

  1. leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树

    leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...

  2. leetcode/求幂集,所有子集

    代码 package com.xcrj;import java.util.ArrayList; import java.util.List;/*** 剑指 Offer II 079. 所有子集,幂集* ...

  3. leetcode面试题 08.04. 幂集(递归)

    幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3 ...

  4. 【Leetcode】刷题之路4(python版)

    接上章回溯专题,本章挑选了分割问题.子集问题.排列问题. 分割问题 131.分割回文串 93.复原IP地址 子集问题 78.子集 90.子集II 排列问题 46.全排列 47.全排列II 分割问题 我 ...

  5. 数据结构与算法:16 Leetcode同步练习(六)

    Leetcode同步练习(六) 目录 题目01:相同的树 题目02:对称二叉树 题目03:二叉树的最大深度 题目04: Pow(x, n) 题目05:子集 题目06:格雷编码 题目07:二叉树的最近公 ...

  6. LeetCode实战:子集

    题目英文 Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The ...

  7. LeetCode 78. 子集

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [[3],[1],[2],[1,2, ...

  8. LeetCode 90子集Ⅱ91解码方法

    微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...

  9. Leetcode 76最小覆盖子串77组合78子集

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

  10. LeetCode——Backtracking

    Backtracking 目录 Backtracking 数字键盘组合 IP 地址划分 在矩阵中寻找字符串 输出二叉树中所有从根到叶子的路径 排列 含有相同元素求排列 组合 组合求和 含有相同元素的组 ...

最新文章

  1. SpringBoot如何验证用户上传的图片资源
  2. oracle trunc()截断函数
  3. Python TeamViewer批量提交密码重置--分析与实现
  4. HDU2087剪花布条
  5. 【MM模块】ASAP 项目实施方法简介
  6. Java中获取Date的昨天代码实现
  7. linux启动管理,Linux启动管理 详述
  8. WPF特效-粒子动画
  9. 传输层学习之五(TCP的SACK,F-RTO)
  10. 阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_6 自定义类型转换器代码编写
  11. 文华wh6如何修改服务器,文华财经 软件特色功能介绍修改
  12. python中文文本聚类_Python3文本聚类如何进行分类操作?
  13. AUTOCAD——光顺曲线命令、分解命令
  14. 省市级联实现,并根据IP自动获取省市
  15. matlab 对数回归,对数拟合
  16. 背景图片与图片对盒子的影响
  17. 信号强度 android,一种获取手机信号强度的方法
  18. 一支笔的测试点_如何测试一支笔
  19. 解决文件上传重名的方案
  20. 8、店铺分类 - 后端功能开发 - 微擎小程序模块应用开发

热门文章

  1. 【Spleeter】实验记录——音轨分离软件spleeter的安装
  2. 论文阅读(4) 游泳水母对被动能量再捕获的广泛利用(2018)
  3. php yyuc框架,求一份YYUC框架文件和帮助文档
  4. 算法导论课后习题答案
  5. 多媒体技术及应用:概述、多媒体技术的特征、多媒体硬件系统、多媒体存储技术
  6. 下载视频网站中ts格式的视频
  7. 数据仓库与数据挖掘 4(上)
  8. foobox 4.2(foobar2000 CUI配置)
  9. 面对性骚扰,Siri Alexa等AI助手如何应对
  10. 谷歌地图离线包-尝试