博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 78. 子集 JAVA
阅读量:5363 次
发布时间:2019-06-15

本文共 930 字,大约阅读时间需要 3 分钟。

题目:

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

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

示例:

输入: nums = [1,2,3]输出:[  [3],  [1],  [2],  [1,2,3],  [1,3],  [2,3],  [1,2],  []]

 

思路:

位运算,求出数组nums的长度n,则一共有2^n个子集,则从0遍历到2^ n - 1,将其转换成2进制数,将2进制数中为1的位置对应的数组元素加入到子集中。

1 class Solution { 2     public List
> subsets(int[] nums) { 3 //int len = nums.length; 4 int end = (int)Math.pow(2,nums.length); 5 List
> res = new ArrayList<>(); 6 for(int i = 0; i < end; i++) 7 { 8 res.add(subset(nums,i)); 9 }10 return res;11 }12 13 public List
subset(int[] nums, int m)14 {15 List
res = new ArrayList<>();16 int i = 0;17 while(m != 0)18 {19 if(m % 2 != 0)20 {21 res.add(nums[i]);22 }23 m = m / 2;24 i++;25 }26 return res;27 }28 }

 

转载于:https://www.cnblogs.com/yanhowever/p/10713548.html

你可能感兴趣的文章
Day9, 进程、线程、协程篇
查看>>
16读取通话记录
查看>>
php简单一句话分析
查看>>
C#实现简单的JSON序列化
查看>>
python学习之生函数名的理解
查看>>
//利用 XmlSerializer配合StreamReader对 xml 文件进行 序列与反序列化
查看>>
Ubuntu中libprotobuf版本冲突的解决方案
查看>>
wcf 错误:无法加载或初始化请求的服务提供程序
查看>>
SQL--模糊查询
查看>>
笛卡尔树初学
查看>>
php的调试工具xdebug
查看>>
关于用友 U8-UAP二开的一些事
查看>>
Android拼图-变形金刚
查看>>
HTML学习
查看>>
前端语法整理
查看>>
华为软件编程题:选秀节目打分
查看>>
我的sql 记录
查看>>
再学try-catch
查看>>
JS不断快速闪烁的图片
查看>>
Android TabHost的使用
查看>>