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

【LeetCode 77. 组合】

1. 题目

2. 分析

本题有个难点在于如何保存深搜得到的结果?总结了一下,深搜处理的代码,关于返回值有三大类。
第一类:层层传递,将最深层的结果传上来;这类题有:【反转链表】
第二类:每层都返回值,迭代更新;这类题有【二叉树最大深度】
第三类:使用全局变量,将结果写到变量中保存。
本题的深搜代码则需要配合第三类来解决。

3. 代码

class Solution:res = []def combine(self, n: int, k: int) -> List[List[int]]:cnt = 0idx = 1self.res = []tmp = []self.dfs(cnt, n, k, idx, tmp)return self.resdef dfs(self, cnt, n, k, idx, tmp):# 这里需要注意,是n+1, 否则最后一个结果拿不到。# 一定要结合代码输出快速的定位问题if idx > n+1: return    if cnt == k:print(tmp)self.res.append(tmp[:])elif cnt < k:tmp.append(idx)self.dfs(cnt+1, n, k, idx+1, tmp)del tmp[-1]self.dfs(cnt, n, k, idx+1, tmp)
http://www.lryc.cn/news/360643.html

相关文章:

  • element-ui组件table去除下方滚动条,实现鼠标左右拖拽移动表格
  • 【C++】list的使用(上)
  • 【代码随想录训练营】【Day 37】【贪心-4】| Leetcode 840, 406, 452
  • concat是什么?前端开发者必须掌握的数组拼接利器
  • WHAT - 容器化系列(一)
  • QT7_视频知识点笔记_67_项目练习(页面以及对话框的切换,自定义数据类型,DB数据库类的自定义及使用)
  • windows10系统64位安装delphiXE11.2完整教程
  • 09.责任链模式
  • Amazon云计算AWS(一)
  • 十_信号4-SIGCHLD信号
  • HCIP的学习(27)
  • 6. MySQL 查询、去重、别名
  • Oracle导出clob字段到csv
  • C++无锁(lock free)队列moodycamel::ConcurrentQueue
  • python办公自动化——(二)替换PPT文档中图形数据-柱图
  • vue不同页面切换的方式(Vue动态组件)
  • Linux下Qt Creator无法输入中文(已解决)
  • Codeforces 提交Java代码(自己处理输入输出)
  • 剖析vue中nextTick源码
  • SSM牙科诊所管理系统-计算机毕业设计源码98077
  • 【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
  • go语言linux安装
  • vi和vim有什么不同?
  • CSS动画效果(鼠标滑过按钮动画)
  • 数据结构(C):从初识堆到堆排序的实现
  • ChatGLM3-6B部署
  • 代码随想录35期Day54-JavaScript
  • 把自己的服务器添加到presearch节点
  • Open3D(C++) OTSU点云二值化
  • 浔川python社获得全网博主原力月度排名泸州地区第二名!