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

力扣100二刷——图论、回溯

第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。

标志掌握程度解释办法
Fully 完全掌握看到题目就有思路,编程也很流利
⭐⭐Basically 基本掌握需要稍作思考,或者看到提示方法后能解答
⭐⭐⭐Slightly 稍微掌握需要看之前写过的代码才能想起怎么做多做
⭐⭐⭐⭐absolutely no 完全没有掌握需要看题解才知道怎么做
⭐⭐⭐⭐⭐有难度的高频题需要看题解才知道怎么做,而且过几天就忘了这道题怎么做了背背
51⭐⭐⭐Medium图论200/岛屿数量递归,三个参数:岛与数组、i、j 遍历原始数组,遇到格子的值为‘1’则调用递归函数 递归结束条件:格子索引超过边界、格子的值为‘0’ 将当前格子周围的格子的索引传入递归函数
52⭐⭐⭐Medium图论994/腐烂的橘子BFS广度优先搜索,和二叉树的层序遍历思路是一样的 遍历数组,维护一个队列来存放初始数组中腐烂的橘子索引Deque<int[]> queue = new ArrayDeque<>();,并统计新鲜橘子的个数fresh 当队列不为空且fresh>0时,ans++ 每一轮‘感染’之后,更新队列的长度length,当length > 0时 3.1 弹出队头元素 3.2 将该元素周围的新鲜橘子(1)加入到队列中,并将其变为 2,且fresh-- 根据fresh 是否 > 0返回结果
53⭐⭐⭐Medium图论207/课程表BFS广度优先搜索 准备工作: 维护一个degree数组,表示每个课程的入度 维护一个表示依赖关系的哈希表,key为被依赖的课程,value为依赖key的课 维护一个入度为0的队列,先将所有入度为0的课程加入队列 BFS,当课程数 > 0 并且 队列不为空时: 弹出队头课程,课程数-- 从map中找到依赖该课程的课程列表,并将他们的入度 -1,如果入度变为0,则入队 根据课程数是否 > 0 返回结果
54Medium图论208/实现Trie(前缀树)
55⭐⭐⭐Medium回溯46/全排列DFS+回溯,递归函数参数:原始数组、当前层数 维护isUsed数组记录元素是否被使用过,item集合、ans集合记录结果 每次递归,从0开始遍历数组 如果元素没被使用过,则将其加入item数组,并更新isUsed 将原始数组、当前层数+1传入递归函数 回溯操作,移除item的最后一个元素、还原isUsed 结束递归操作:当当前层数等于数组长度时,将item的拷贝版本加入到ans中 ans.add(new ArrayList(item));
56⭐⭐⭐Medium回溯78/子集DFS+回溯,递归函数参数:原始数组、当前索引index 和上题不同的是,每次递归遍历数组不是从0开始,而是从当前index开始 将原始数组和当前正在遍历的索引 i + 1传入递归函数
57⭐⭐⭐Medium回溯17/电话号码的字母组合DFS+回溯:递归函数参数:原始数组、当前索引index 准备工作,先将数组到字母的映射保存到map中 每层递归代表一个数字,输入几个数字,就是求这几个数组对应的字母之间的全排列 每次递归,先根据index对应的数字在map中找到对应的字母,字母字符串就是当前层所要遍历的 将index + 1传入递归函数 递归结束条件:index等于数字数
58⭐⭐⭐Medium回溯39/组合总和DFS+回溯: 其实这道题就是78/子集的升级版,要在子集中 寻找sum = target的集合 注意:回溯时,不但要更新 item,还要更新sum 递归结束条件:当前总和 ≥ 目标和,注意等于的时候,将当前 item 添加进 ans
59⭐⭐⭐Medium回溯22/括号生成DFS+回溯: 递归传入参数:括号对数 n,左括号数量,右括号数量 左括号数量 < n 时,添加左括号到temp,并将新的左括号数量传入递归函数,回溯(更新temp) 右括号数量 < 左括号数量时,添加右括号到temp,并将新的右括号数量传入递归函数,回溯(更新temp) 递归结束条件:右括号数量 = n
60⭐⭐⭐⭐Medium回溯79/单词搜索DFS+回溯: 依次将矩阵的元素(行列)以及当前遍历的字符位置传入递归函数 递归函数中,对当前元素判断是否与当前字符相等,不等则直接返回false 元素行列超出范围也返回false 以上条件都不满足,说明元素与当前字符相等,将当前元素更新为 ‘\0’,继续遍历下一个元素,回溯(将当前元素还原,word.charAt(index))
61⭐⭐⭐⭐Medium回溯131/分割回文串DFS+回溯:递归参数:当前子串起始位置left 在字符串长度 n 的范围内,将子串结束位置right 从 left 开始遍历 判断 s.subString(left, right + 1)是否为回文,这里另写一个函数 如果是回文的话,则添加子串到item,并将right + 1传入递归函数,达到分割的目的,回溯(更新item) 递归结束条件:right = n
62Hard回溯51/N皇后

图片版:
在这里插入图片描述

相关文章:

  • SAP-ABAP:SAP采购业务核心表关联关系详解
  • C#的List和DIctionary实现原理(手搓泛型类以及增删查改等功能)
  • 力扣最热一百题——跳跃游戏II
  • 诺视Micro-LED微显示芯片量产线投产 ——开启微显示技术新时代
  • 【cf】交换
  • 智能跳低成本otp语音芯片方案-wt6020 语音计数时间提示:“100次”“运动时间5分钟
  • 什么是大数据风控
  • 以光盘读写系统演示面向对象设计的原则与方法
  • 基于python的Flask模块化设计与蓝图的妙用——打造轻量化Web应用
  • VSCode扩展工具Copilot MCP使用教程【MCP】
  • Springboot实战篇(1):项目概述及环境搭建
  • Vmware中的centos7连接上网
  • 递归、搜索与回溯第三讲:综合练习
  • 在 web 部署 YOLOv8目标检测(Django+html)
  • shopee商品列表数据接口详解
  • Gymnasium Cart Pole 环境与 REINFORCE 算法 —— 强化学习入门 2
  • 【视频】OrinNX+Ubuntu20.04:移植OpenCV-4.11.0 with CUDA(含opencv_contrib )
  • 教材结构化解读
  • scrollIntoView 的behavior都有哪些属性
  • 高性能边缘计算网关-高算力web组态PLC网关
  • 援藏博士张兴堂已任西藏农牧学院党委书记、副校长
  • 梅花奖在上海|第六代“杨子荣”是怎样炼成的?
  • 首批18位!苏联籍抗日航空英烈信息更新
  • 央行、证监会:科技创新债券含公司债券、企业债券、非金融企业债务融资工具等
  • 抗战回望20︱《山西省战区抗敌行政工作检讨会议议决案》:“强民政治”、“说服行政”
  • 联合国秘书长吁印巴“最大程度克制”,特朗普:遗憾,希望尽快结束冲突