LeetCode78-子集
- 题目
给定一组不同的整数 nums,返回所有可能的子集(幂集)。注意事项:该解决方案集不能包含重复的子集。
- 思路
1.设置一个大机器人robot解决主问题,对于全排列的每一个元素index,都有取index和不取index区别
2.设置一个辅助数组v[],来记录当前index是取还是不取。
3.当前元素取,执行小机器人robot对下一个元素进行判断
4.当前元素不取,执行小机器人robot对下一个元素进行判断
5.直到小机器人遍历完数组,将当前的组合情况放入List。
class Solution {public static boolean[] v = new boolean[100];public static List<List<Integer>> ans = new ArrayList<List<Integer>>();public void robot(int index, int[] nums){if(index >= nums.length){List<Integer> r = new ArrayList<Integer>();for(int i = 0; i < nums.length; i++){if(v[i]){r.add(nums[i]);}}ans.add(r);return;}//v[index]辅助记录,记录取还是不取v[index]v[index] = true; //取indexrobot(index + 1, nums); //造个小机器人,把取index的情况都算完v[index] = false; //不取indexrobot(index + 1, nums); //造个小机器人,把不取index的情况都算完}public List<List<Integer>> subsets(int[] nums) {ans.clear();robot(0, nums);return ans;}
}
LeetCode78-子集相关推荐
- 回溯算法--LeetCode-78 子集、LeetCode-90 子集Ⅱ
LeetCode-78 子集 题目链接:https://leetcode-cn.com/problems/subsets/ 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). ...
- leetcode78. 子集(回溯)
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [ ...
- leetcode78 子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], ...
- Leetcode--78. 子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], ...
- Leetcode 76最小覆盖子串77组合78子集
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...
- 【大总结3】leetcode解题总览(算法、剑指offer、SQL、多线程、shell)
3/22更新 剑指offer 题目链接 建议大部分题都会做,都能比较快速且准确的写出来.关于做题方式,我的建议是:一道一道刷即可,因为难度一般,不用系统的学习什么知识,遇到实在不会的就跳过即可. 我这 ...
- 双非研二师弟的春招总结和实习感悟
大家好,我是阿秀. 考虑到最近校招提前批已经开始了,最近会多分享一些校招秋招经验! 前段时间有位研二师弟经过自己的努力终于拿到了字节和腾讯的offer,跟我分享他春招过程和实习感悟,我感觉还是挺有意义 ...
- LeetCode算法题整理(200题左右)
目录 前言 一.树(17) 1.1.后序遍历 1.2.层次遍历 1.3.中序 1.4.前序 二.回溯(20) 2.1.普通回溯 2.2.线性回溯:组合.排列.子集.分割 2.3.矩阵回溯 三.二分查找 ...
- leetcode解题总览
3/22更新 剑指offer 题目链接 建议大部分题都会做,都能比较快速且准确的写出来.关于做题方式,我的建议是:一道一道刷即可,因为难度一般,不用系统的学习什么知识,遇到实在不会的就跳过即可. 我这 ...
- leetcode分类刷题笔记
leetcode分类刷题笔记--基于python3 写在前面 1.做题如果实在想不出时间复杂度比较优的解法,可以先写出暴力解法,尝试在其基础上优化 2.排序.双指针.二分等--经常可以优化时间复杂度 ...
最新文章
- ubuntu vsftpd虚拟用户配置/ubuntu12.04上搭建vsftpd服务示例linux
- iOS 关于手机权限的检查与获取
- Linux中用户管理
- How to setup SLF4J and LOGBack in a web app - fast--转载
- 四五月份:关键词是沟通、绘画和SQL
- 5G边缘计算:开源架起5G MEC生态发展新通路
- 2019款新iPhone发布时间曝光:依旧9月12日亮相?
- 关于Mytatis动态拼接in语句并且按照指定顺序排序的问题
- Java基础学习总结(43)——Java8 Lambda揭秘
- 1.VBA实现EXCEL中Sheet1的 甲列 相同数值的行对应的乙列的数的和作为Sheet2中丙列中与Sheet1中甲列 相同的行对应的丁列的值...
- 如何用JavaScript判断客户端浏览器是否安装了Flash插件,及其版本
- 【Oracle】手工创建数据库
- Python Imaging Library: ImageMath Module(图像数学运算模块)
- AD19一键同时修改PCB各元器件黄色标志字符的尺寸(大了太占空间改小一点
- iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425)
- 有权图的单源最短路算法
- DS8880要将双控高端存储架构进行到底
- 十亿级别的MySQL数据库表(InnoDB存储引擎),旧数据清理的蹩脚方案。
- 手机兼容性测试——机型选择(从系统、屏幕、型号考虑)
- IAR生成文件链接过程解析