力扣热题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;
    }
}
相关推荐
踩坑记录7 分钟前
leetcode hot100 54.螺旋矩阵 medium
leetcode
wzf@robotics_notes9 分钟前
振动控制提升 3D 打印机器性能
嵌入式硬件·算法·机器人
机器学习之心27 分钟前
MATLAB基于多指标定量测定联合PCA、OPLS-DA、FA及熵权TOPSIS模型的等级预测
人工智能·算法·matlab·opls-da
Loo国昌36 分钟前
【LangChain1.0】第八阶段:文档处理工程(LangChain篇)
人工智能·后端·算法·语言模型·架构·langchain
xb11321 小时前
Winforms实战项目:运动控制界面原型
算法
MicroTech20251 小时前
微算法科技(NASDAQ :MLGO)量子安全哈希(QSHA),增强量子时代的区块链安全保障
科技·算法·安全
高洁011 小时前
数字孪生与数字样机的技术基础:建模与仿真
python·算法·机器学习·transformer·知识图谱
不忘不弃1 小时前
模拟内存分配器2
算法
被星1砸昏头1 小时前
C++中的享元模式
开发语言·c++·算法
淡忘旧梦2 小时前
词错误率/WER算法讲解
人工智能·笔记·python·深度学习·算法