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();
        }
    }
};
相关推荐
Liangwei Lin3 小时前
洛谷 B3637 最长上升子序列
算法
珂朵莉MM4 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第一赛季优化题--无人机配送
人工智能·算法·无人机
xiaoxue..4 小时前
列表转树结构:从扁平列表到层级森林
前端·javascript·算法·面试
代码游侠4 小时前
复习——线程(pthread)
linux·运维·开发语言·网络·学习·算法
papaofdoudou4 小时前
基于QEMU 模拟intel-iommu的sva/svm demo环境搭建和验证
算法·机器学习·支持向量机
再__努力1点4 小时前
【78】HOG+SVM行人检测实践指南:从算法原理到python实现
开发语言·人工智能·python·算法·机器学习·支持向量机·计算机视觉
scx201310044 小时前
20251214 字典树总结
算法·字典树
leiming64 小时前
MobileNetV4 (MNv4)
开发语言·算法
YGGP4 小时前
【Golang】LeetCode 136. 只出现一次的数字
算法·leetcode
YGGP5 小时前
【Golang】LeetCode 169. 多数元素
算法·leetcode