LeetCode:56.子集

目录

1.子集


1.子集

对于这道题,还是先进行画图来方便寻找思路

通过图中可以看到,每一次向下走的时候都选择的是后面的数字,例如1后面可以选择2和3,2就只能选择3了,如果2选择1的话,就会重复,所以这道题的思路就很明显了,dfs的时候传入数组和开始位置,在后面dfs的时候就从下一个位置开始,同时也要注意还原现场

cpp 复制代码
class Solution {
    vector<vector<int>> ret;
    vector<int> path;
public:
    vector<vector<int>> subsets(vector<int>& nums) 
    {
        dfs(nums, 0);
        return ret;
    }

    void dfs(vector<int>& nums, int pos)
    {
        ret.push_back(path);

        for(int i = pos; i < nums.size(); i++)
        {
            path.push_back(nums[i]);
            dfs(nums, i + 1);
            path.pop_back();
        }
    }
};
相关推荐
小宋10219 分钟前
一套服务托管多个 LoRA:适配器加载、租户隔离与热切换实战
大数据·人工智能·算法
Rosanci17 分钟前
Codex 下载与本地部署实战:从安装到运行全流程指南
开发语言·前端·算法·chatgpt·codex
我爱工作&工作love我26 分钟前
P14358 [CSP-J 2025] 座位
算法
旖旎夜光28 分钟前
LeetCode 1576: 替换所有的问号(模拟) —— 题解
c++·学习·算法·leetcode·力控
朝朝辞暮i29 分钟前
C++ 第 38 课:线程、SingleThreadedExecutor、MultiThreadedExecutor、Callback Group
开发语言·c++·算法·ros2
(Charon)35 分钟前
【C++面试】互斥锁与读写锁:使用场景、实现原理与写饥饿问题
c++·算法
longlongzihan37 分钟前
回溯法详解:LeetCode 46. 全排列
算法·leetcode·回溯
秋名RG39 分钟前
时间复杂度、空间复杂度与算法稳定性详解
数据结构·算法·排序算法
白色的北极熊44 分钟前
c语言 求余运算符
c语言·数据结构·算法
波尔德1 小时前
Origin 2024 绘制钟形正态分布曲线:填充颜色并导出透明 PNG
人工智能·算法