LeetCode热题100 子集

题目描述

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

示例 1:

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

示例 2:

输入 :nums = 0
输出 :\[,0]

提示:

1 <= nums.length <= 10

-10 <= numsi <= 10

nums 中的所有元素 互不相同

思路

二进制枚举模板,详细见代码。

代码

cpp 复制代码
class Solution {
public:
    vector<vector<int>> subsets(vector<int>& nums) {
        int n = nums.size();
        vector<int>res;
        vector<vector<int>>ans;
        for(int i = 0; i < 1 << n; ++ i)
        {
            res.clear();
            for(int j = 0; j < n; ++j)
            {
                if(i >> j & 1)
                {
                    res.push_back(nums[j]);
                }
            }
            ans.push_back(res);
        }
        return ans;
    }
};
相关推荐
倒头就睡的小比特5 天前
算法竞赛C++常用的STL
c++·算法
weilx12345 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!5 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼5 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
Smileyqp沛沛5 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
m0_547486665 天前
《数据结构教程》全套 PPT课件2026
数据结构
C语言小火车5 天前
C/C++ 为什么需要编译器?
开发语言·c++
旖旎夜光5 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark5 天前
大规模并行计算中的负载均衡算法研究4
算法
吞下星星的少年·-·5 天前
C++ 萌新语法入门篇
c++·算法比赛