【一天一道LeetCode】#78. Subsets
一天一道LeetCode
本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github
欢迎大家关注我的新浪微博,我的新浪微博
欢迎转载,转载请注明出处
(一)题目
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、子集不能重复
2、子集里面的数需要按照非降序排列
解题思路:考虑到用位操作来模拟所有的排列组合。以数集大小等于3为例:
3位二进制的全排列为:000,001,010,011,100,101,111
利用这个全排列,为1就选入子集,为0就不选。很容易就得到了所有子集
class Solution {
public:
    vector<vector<int>> subsets(vector<int>& nums) {
        long n = pow(2,nums.size());//按位数得到全排列最大值
        sort(nums.begin(),nums.end());//由于子集的数需要按非降序排列,故先将集合排序
        vector<vector<int>> ret;
        for(long i = 0 ; i < n ; i++)
        {
            vector<int> tempset;
            for(int j = 0 ; j < nums.size() ;j++)
            {
                if((i>>j)&1==1)//判断每一位是否为1
                {
                    tempset.push_back(nums[j]);
                }
            }
            ret.push_back(tempset);
        }
        return ret;
    }
};
【一天一道LeetCode】#78. Subsets的更多相关文章
- leetcode 78. Subsets 、90. Subsets II
		
第一题是输入数组的数值不相同,第二题是输入数组的数值有相同的值,第二题在第一题的基础上需要过滤掉那些相同的数值. level代表的是需要进行选择的数值的位置. 78. Subsets 错误解法: cl ...
 - [LeetCode] 78. Subsets 子集合
		
Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must be ...
 - LeetCode 78. Subsets(子集合)
		
Given a set of distinct integers, nums, return all possible subsets. Note: The solution set must not ...
 - LeetCode 78 Subsets (所有子集)
		
题目链接:https://leetcode.com/problems/subsets/#/description 给出一个数组,数组中的元素各不相同,找到该集合的所有子集(包括空集和本身) 举例说 ...
 - Leetcode#78 Subsets
		
原题地址 有两种方法: 1. 对于序列S,其子集可以对应为一个二进制数,每一位对应集合中的某个数字,0代表不选,1代表选,比如S={1,2,3},则子集合就是3bit的所有二进制数. 所以,照着二进制 ...
 - [leetcode]78. Subsets数组子集
		
Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solut ...
 - [LeetCode] 78. Subsets tag: backtracking
		
Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solut ...
 - Leetcode 78. Subsets (backtracking) 90 subset
		
using prev class Solution { List<List<Integer>> res = new ArrayList<List<Integer&g ...
 - leetCode 78.Subsets (子集) 解题思路和方法
		
Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must ...
 - [LeetCode] 90.Subsets II tag: backtracking
		
Given a collection of integers that might contain duplicates, nums, return all possible subsets (the ...
 
随机推荐
- 微信小程序 发现之旅(一)—— 项目搭建与页面跳转
			
开发微信小程序需要注册一个小程序账号,具体流程可以参照官方教程: https://mp.weixin.qq.com/debug/wxadoc/dev/index.html 开通账户之后,在 “开发设置 ...
 - ACM  Find them, Catch them
			
The police office in Tadu City decides to say ends to the chaos, as launch actions to root up the TW ...
 - Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析
			
原文地址:http://www.javatang.com 一个典型的thread dump文件主要由一下几个部分组成: 上图将JVM上的线程堆栈信息和线程信息做了详细的拆解. 第一部分:Full th ...
 - NestedScrollView嵌套ViewPager
			
NestedScrollView嵌套ViewPager 效果图 重写ViewPager package com.kongqw.kbox.view; import android.content.Con ...
 - Mac小技巧:强制退出程序的六种方法
			
原帖地址: http://www.cnbeta.com/articles/175447.htm 1.使用键盘快捷键强制退出处于活跃状态的Mac程序 快捷键:Command+Option+Shift+E ...
 - weakref 待解决.
			
暂时不知为何在控制台多执行一次b()后,del a就不会立即销毁Foo实例. >>> class Foo(object): def __init__(self): self.obj ...
 - 《Shazam It! Music Recognition Algorithms, Fingerprinting, and Processing》译文
			
最近看到一篇老外写的博客,简单介绍了shazam的工作原理.图非常好,所以就把它翻译成中文,希望对搞听歌识曲的人有帮助. 你可能遇到这样的场景:在酒吧或者餐厅听到你非常熟悉的歌,也许你曾经听过无数次, ...
 - 错误问题:OpenGL version to old,GLViewinitWithRect(const stdbasic_stringchar,stdchar_traitschar,stdalloca
			
 1电脑装成Linux之后,在Linux里面装虚拟机运行cocos2d-x-3.2时报如下错误: plan3d.exe!cocos2d::GLView::initWithRect(const st ...
 - 使用shell操作HDFS
			
前提是都已经配置好了,可以参考hadoop伪分布安装:http://blog.csdn.net/jerome_s/article/details/25788967 linux的文件系统与hdfs的关系 ...
 - 自制DbHelper实现自动化数据库交互
			
之前一直对apache的DbUtils很好奇,也很佩服其中的设计上的智慧.于是就自己模拟实现了一个更加简便的小框架.我们只需要在配置文件中写上数据库层面的连接信息,就可以随心所欲的实现自己的需求了. ...