leetcode78-子集

leetcode 78

思路

本题主要考的是回溯

result用来存储结果值,path表示每层遍历存放的值,每次递归的时候path中的结果都是结果值,所以每次递归的时候需要先把path中的内容存入result中,当startIndex === nums.length时,说明已经遍历完所有元素则结束递归

下面图中是所有的过程,以nums = [1,2,3]为例,图中pop()就是回溯的过程

实现

js 复制代码
var subsets = function(nums) {
    let result = [],path = [];
    const backtracking = (nums,startIndex)=>{
        result.push([...path])
        if(nums.length === startIndex) return;
        for(let i = startIndex;i < nums.length;i++){
            path.push(nums[i])
            backtracking(nums,i+1)
            path.pop(); // 回溯
        }
    }
    backtracking(nums,0)
    return result;
};
相关推荐
Mintopia11 分钟前
深度伪造检测技术在 WebAIGC 场景中的应用现状
前端·javascript·aigc
BUG_Jia11 分钟前
如何用 HTML 生成 PC 端软件
前端·javascript·html·桌面应用·1024程序员节
皓月Code13 分钟前
第二章、全局配置项目主题色(主题切换+跟随系统)
javascript·css·react.js·1024程序员节
MoonBit月兔34 分钟前
MoonBit Pearls Vol.12:初探 MoonBit 中的 JavaScript 交互
开发语言·javascript·数据库·交互·moonbit
非凡ghost36 分钟前
Tenorshare 4DDiG(数据恢复软件) 最新版
前端·javascript·后端
www_stdio39 分钟前
深入理解JavaScript变量声明:var、let与const的全面解析
javascript
San3039 分钟前
AI 歌词生成器:使用 OpenAI 打造你的专属作词助手
javascript·人工智能·node.js
第七序章43 分钟前
【C + +】unordered_set 和 unordered_map 的用法、区别、性能全解析
数据结构·c++·人工智能·算法·哈希算法·1024程序员节
草莓熊Lotso1 小时前
《算法闯关指南:优选算法--二分查找》--23.寻找旋转排序数组中的最小值,24.点名
开发语言·c++·算法·1024程序员节
用户84298142418101 小时前
JavaScript数据类型
javascript