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;
};
相关推荐
庸子19 小时前
Kubernetes调度器深度解析:从资源分配到亲和性策略的架构师之路
java·算法·云原生·贪心算法·kubernetes·devops
顾安r19 小时前
11.14 脚本网页 迷宫逃离
服务器·javascript·游戏·flask·html
Sunhen_Qiletian19 小时前
YOLOv2算法详解(上篇):从经典到进化的目标检测之路
算法·yolo·目标检测
QTreeY12319 小时前
detr目标检测+deepsort/strongsort/bytetrack/botsort算法的多目标跟踪实现
人工智能·算法·yolo·目标检测·计算机视觉·目标跟踪
顾安r19 小时前
11.14 脚本网页游戏 猜黑红
前端·javascript·游戏·flask·html
AiXed19 小时前
PC微信协议之nid算法
python·网络协议·算法·微信
@菜菜_达20 小时前
interact.js 前端拖拽插件
开发语言·前端·javascript
谈笑也风生20 小时前
经典算法题之子集(四)
算法
mit6.82420 小时前
划分dp+滑窗+前缀和|deque优化
算法
一个假的前端男20 小时前
uniapp 3端轮播
前端·javascript·uni-app