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 <= nums[i] <= 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;
    }
};
相关推荐
一定要AK2 小时前
刷题时的学习笔记
c++·笔记·学习
圣保罗的大教堂4 小时前
leetcode 3418. 机器人可以获得的最大金币数 中等
leetcode
workflower5 小时前
用硬件换时间”与“用算法降成本”之间的博弈
人工智能·算法·安全·集成测试·无人机·ai编程
小樱花的樱花5 小时前
C++ new和delete用法详解
linux·开发语言·c++
重生之我是Java开发战士7 小时前
【动态规划】简单多状态dp问题:按摩师,打家劫舍,删除并获得点数,粉刷房子,买卖股票的最佳时机
算法·动态规划·哈希算法
努力的章鱼bro7 小时前
操作系统-FileSystem
c++·操作系统·risc-v·filesystem
96777 小时前
cURL curl
c++
一匹电信狗8 小时前
【Linux我做主】进程程序替换和exec函数族
linux·运维·服务器·c++·ubuntu·小程序·开源
KAU的云实验台8 小时前
单/多UAV、静/动态路径规划,基于PlatEMO平台的带约束多目标优化 本文核心内容:
算法·matlab·无人机