力扣算法——78_子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]
]
- 递归写法
import java.util.*;public class Main {public List<List<Integer>> rs = new ArrayList<>();public List<List<Integer>> subsets(int[] nums) {List<Integer> list = new ArrayList<>();dfs(nums,0,list); //数组,在获取第几个,这次的结果保存return rs;}public void dfs(int[] nums,int now,List<Integer> list){if(now==nums.length){rs.add(new ArrayList<Integer>(list));return ;}list.add(nums[now]);dfs(nums,now+1,list);list.remove(list.size()-1); //当前这个元素不取dfs(nums,now+1,list);}public static void main(String[] args) {Main main = new Main();int[] arr = {1,2,3};main.subsets(arr);System.out.println(main.rs.toString());}
}
- 迭代法实现子集枚举(力扣的官方答案)
这道题我只会用递归,下面的方法是力扣官方的答案,虽然看懂了但是让我写的话估计够呛。代码上面加上了我个人的理解,应该可以轻松看懂。
List<Integer> t = new ArrayList<Integer>();List<List<Integer>> ans = new ArrayList<List<Integer>>();public List<List<Integer>> subsets1(int[] nums) {int n = nums.length;for (int mask = 0; mask < (1 << n); ++mask) { //mask的二进制带表每种取得情况,二进制位的0和1代表的是否取这个数t.clear();for (int i = 0; i < n; ++i) { if ((mask & (1 << i)) != 0) { //1<<i带表现在第几位数,mask & (1 << i)代表这一位在mask中是否存在t.add(nums[i]);}}ans.add(new ArrayList<Integer>(t));}return ans;}
力扣算法——78_子集相关推荐
- LeetCode 力扣算法题解汇总,All in One
作者: 负雪明烛 id: fuxuemingzhu 个人博客: https://fuxuemingzhu.cn 关键词:LeetCode,力扣,算法,题解,汇总,解析 把自己刷过的所有题目做一个整理, ...
- 程序员面试需要刷力扣算法题吗
这里写目录标题 1. 程序员面试需要刷力扣算法题吗 1.1. 算法题的一些特征 1.2. 为什么要考查算法 1.3. 目前面试主要考查 3 类 1. 程序员面试需要刷力扣算法题吗 1.1. 算法题的一 ...
- 力扣算法1~10题(js)
标题 力扣算法 文章目录 标题 1.贩卖柠檬水,能否正确找零 错误 思路一: 解法一 缺点:耗时太长 解法二(大佬解法) 2.返回nums中和为target的两个数的下标 解法 3.两数相加 思路与算 ...
- 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
学习内容 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 具体内容 509. 斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 ...
- 我的力扣算法845-数组中的最长山脉
哈哈,真的放了一天假. 好了,废话不多说,我们先开始今天的力扣每日一题: 虽然说这次的算法是中等难度,但是相信通过时间和不断的尝试,各位都可以完成出来,这里介绍一种取巧的方式进行问题的解决. 既然是找 ...
- LeetCode -- 力扣算法题解题心得 -- (个人笔记记录)持续更新~~
一.前言 正式开启数据结构+算法研究的历程,准备好一年后的面试.下面的解法不一定是最优解,只求能力提升,会定期更新~~ 二.目录 1 2 19 20 21 24 35 42 83 86 94 96 1 ...
- 力扣算法题—042接雨水
1 #include"000库函数.h" 2 //一点头绪都没有 3 //然后就自己按自己的意思来一遍 4 //好像没有用算法 5 //16ms,让我激动一把 6 7 class ...
- 力扣算法之两矩形求和
原题目 223. 矩形面积 给你 二维 平面上两个 由直线构成的 矩形,请你计算并返回两个矩形覆盖的总面积. 每个矩形由其 左下 顶点和 右上 顶点坐标表示: 第一个矩形由其左下顶点 (ax1, ay ...
- 力扣算法题-19.秋叶收藏集 C语言实现
题目 小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片 ...
最新文章
- 中兴V880使用手记之五——刷入recovery
- Java 中的 BigDecimal,你真的会用吗?
- MySQL的基本查询(二)
- 【原创】C# Sealed、new、virtual、abstract、override的理解
- 【JMX】JMX 远程 连接 The client has been closed
- Python基础(map/reduce)
- mssql linux性能,MSSQL 的Top 和 MAX 效率测试
- maven自定义本地仓库目录
- centos7 mysql读写监控,《Centos7——zabbix监控mysql的常规操作》
- 云桌面选不对,再好的产品也白用
- Delphi调用IE打开网页
- (转)通过修改键盘映射替代损坏按键
- 淘宝特价版事业部java面试,含爱奇艺,小米,腾讯,阿里
- (SOJ) check if a word is on a given Boggle board
- 科幻电影虚拟世界中的8大服务器
- 分布式系统限流策略/秒杀系统限流设计
- 计算机中 符号咋打,乘以符号电脑怎么打_详细教您打出乘以符号的方法
- SLAM导航机器人零基础实战系列:(四)差分底盘设计——2.stm32主控软件设计
- LYTRO图像文件数据包
- 以太坊合并背景下的四种投资策略
热门文章
- 微信小程序怎么样与mysql一起开发_莲米粒是一个基于PHP+MySQL+微信小程序技术栈...
- linux-关机命令shutdown
- 文件缓存FileCache
- html高度塌陷问题
- 2021清远市清城中学高考成绩查询,清远市清城中学中考成绩
- Rosalind Java|Finding a Spliced Motif
- 【WebView】关于Android WebView 的一些坑
- 举个栗子!Tableau 技巧(127):购物篮分析 Market Basket Analysis 之关联购买
- Django 多表操作
- mysql usleep_PHP 暂停函数 sleep() 与 usleep() 的区别