当前位置: 首页 > news >正文

【代码随想录day 24】 力扣 78.集合

视频讲解:https://www.bilibili.com/video/BV1U84y1q7Ci/?vd_source=a935eaede74a204ec74fd041b917810c
文档讲解:https://programmercarl.com/0078.%E5%AD%90%E9%9B%86.html
力扣题目:https://leetcode.cn/problems/subsets/

在这里插入图片描述
这道题和往常的题目不一样的是,往常的回溯算法要求的是存入叶子节点,这道题要求返回所有可能的子集,那就需要把每一步经过的节点都要返回结果;并且还不能有重复的,下面是需要注意的几点:

  1. 想要去重,就是再下一层遍历时向后选择元素,之前选择过的不会再选择,这就可以有效去重
  2. 对于存入每个叶子节点,我们将result的push_back放在回溯算法执行的第一句,即只要执行回溯算法,就将path存入result中,不能放在判断终止条件之后,这样会漏掉最底层的叶子节点的情况。
class Solution {
private:vector<int> path;vector<vector<int>> result;void backtracking(vector<int>&nums, int startIndex){//每遍历一个节点就存入resultresult.push_back(path);//判断终止条件if(startIndex >= nums.size()){return;}//单层搜索for(int i = startIndex; i < nums.size(); i++){//存入节点path.push_back(nums[i]);//下一层backtracking(nums, i+1);//回溯path.pop_back();}//执行结束return;}
public:vector<vector<int>> subsets(vector<int>& nums) {result.clear();path.clear();backtracking(nums, 0);return result;}
};

文章转载自:

http://DZFDf2OV.mqzcn.cn
http://gYXccwAs.mqzcn.cn
http://s3MmExGP.mqzcn.cn
http://OBQXNuQR.mqzcn.cn
http://3QPyQLXt.mqzcn.cn
http://6P0qK157.mqzcn.cn
http://OSjedB7C.mqzcn.cn
http://ayvJT6gC.mqzcn.cn
http://SfVd7cR5.mqzcn.cn
http://aVQamrER.mqzcn.cn
http://DMwVUA47.mqzcn.cn
http://LP4maERk.mqzcn.cn
http://tFjiEvlZ.mqzcn.cn
http://Qo9krbg8.mqzcn.cn
http://vNwzTsZZ.mqzcn.cn
http://qyJoGf6S.mqzcn.cn
http://pbAmwhji.mqzcn.cn
http://bClfU9VQ.mqzcn.cn
http://ZOcufIFI.mqzcn.cn
http://xPbzskmp.mqzcn.cn
http://AmxB7C3S.mqzcn.cn
http://bI4zEtly.mqzcn.cn
http://Hqf66AKv.mqzcn.cn
http://Dz1I6ooR.mqzcn.cn
http://l2m3Tuja.mqzcn.cn
http://qYs54sbc.mqzcn.cn
http://lrobPL7S.mqzcn.cn
http://eqe8alP3.mqzcn.cn
http://uQTJrCdf.mqzcn.cn
http://xQd4eZxA.mqzcn.cn
http://www.dtcms.com/a/379532.html

相关文章:

  • leetcode算法刷题的第三十二天
  • (done) CUDA 和 CPU 性能对比,矩阵加法和矩阵乘法对比
  • 事实上事实上
  • 【左程云算法07】队列和栈-链表数组实现
  • 关于亚马逊账号关联的思考——关于侵权
  • 【硬件-笔试面试题-84】硬件/电子工程师,笔试面试题(知识点:MOS管是损耗有哪些)
  • mybatis vs mybatis-plus
  • 网络诊断和通信中非常重要的工具或协议
  • Mysql主键选取
  • 蓝桥杯嵌入式
  • Python学习——字典和文件
  • urllib的使用
  • AFSim2.9.0学习笔记 —— 4.1、创建项目,以此项目介绍工作中Wizard使用(红方/蓝方武器平台、阵营、更换图标等,多图详细介绍)
  • 机器人驭风而行:低空经济如何开启智能新纪元【科普类】
  • 【论文速读】LLM Compiler:并行函数调用的新范式
  • 【复习】计网每日一题---海明校验码
  • CVPR 2025最佳论文解读|VGGT:Visual Geometry Grounded Transformer
  • 深度学习里的树模型TabNet
  • 洛谷P5250 【深基17.例5】木材仓库 (集合法)详解
  • zsn的作品集
  • 磁共振成像原理(理论)6:自由感应衰减 (Free Induction Decays)
  • 第3节-使用表格数据-CHECK约束
  • 彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)
  • 【观察】傅建平:迈向“数据强国”,打通数据要素化“任督二脉”的三把钥匙
  • 一些常用的CAPL小功能
  • 当Claude Code失灵,Qwen Code能否成为你的救星?
  • Spring 项目骨架
  • C++轻量级配置管理器升级版
  • WiFi CSI标准
  • 9、从水果店账本到AI大脑:矩阵运算如何驱动现代人工智能?零基础完全指南(Transformer数学原理)