力扣热题100道之78子集

解法

题解中的迭代的解法

利用索引的二进制来标记当次应该哪几位。

所有的子集一共有2的n次方种。刚好对应所有的索引的二进制,其中索引的二进制中的第i位为1表示第i位在此子集中。比如例子nums=[1,2,3],其中n=3,7可以表示为111,意思是123这三个数都在这个子集中。再比如3的二进制是011,那么这个子集中的数据有2,3。

这样就将2的n次方种子集情况,全部都表示出来了。

复制代码
class Solution {
    public List<List<Integer>> subsets(int[] nums) {
        List<List<Integer>>r=new ArrayList();
        List<Integer>o=new ArrayList();
        int n=nums.length;
        for(int m=0;m<(1<<n);m++){
            o.clear();
            for(int i=0;i<n;i++){   
                if((m&(1<<i))!=0){
                    o.add(nums[i]);
                }
            }
            r.add(new ArrayList(o));
        }
        return r;
    }
}
相关推荐
杨连江2 分钟前
原子级平面限域协同晶核诱导定向生长单层鳞片石墨的研究
算法
MATLAB代码顾问8 分钟前
混合粒子群-模拟退火算法(HPSO-SA)求解作业车间调度问题——附MATLAB代码
算法·matlab·模拟退火算法
Felven12 分钟前
C. Prefix Min and Suffix Max
算法
加农炮手Jinx13 分钟前
LeetCode 26. Remove Duplicates from Sorted Array 题解
算法·leetcode·力扣
加农炮手Jinx13 分钟前
LeetCode 88. Merge Sorted Array 题解
算法·leetcode·力扣
格林威13 分钟前
线阵工业相机:如何计算线阵相机的行频(Line Rate)?公式+实例
开发语言·人工智能·数码相机·算法·计算机视觉·工业相机·线阵相机
yueyue54316 分钟前
透过现象看本质:以fast_lio架构的整套算法的局部避障改为TEB算法为例深度探讨——如何成为一个合格的算法架构师?
算法·架构
梨花爱跨境16 分钟前
红人视频×A10算法:亚马逊转化率与流量闭环实战
算法
阿Y加油吧21 分钟前
二刷 LeetCode:75. 颜色分类 & 31. 下一个排列 复盘笔记
笔记·算法·leetcode
风筝在晴天搁浅22 分钟前
LeetCode 378.有序矩阵中第K小的元素
算法·矩阵