首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode Hot 100
vim怎么退出
创建于2024-08-22
订阅专栏
坚持刷完热题100
等 1 人订阅
共100篇文章
创建于2024-08-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
60.单词搜索
题目链接 解法 回溯 思路 进入回溯的条件是要找到字母的开头,接下来朝4个方向去搜寻下一个字母,而下一个字母肯定是要用一个变量 index 来控制的,其他的参数就剩下遍历当前格子的行和列了。 终止条件
59.括号生成
题目链接 解法 回溯 思路 递归参数肯定需要路径 path ,然后怎么去控制加左括号还是右括号呢?可以用两个计数器。 递归的规则就是如果当前左括号比 n 小,那么可以加左括号;如果当前左括号比右括号大
58.组合总和
题目链接 解法 回溯剪枝 思路 先想一下递归需要哪些参数呢?每次递归的 path ,然后累加或者累减的参数,其次就是每次开始的索引。 为什么需要索引?如果传递索引,那么每次都是从 0 开始循环递归,这
57.电话号码的字母组合
题目链接 解法 dfs回溯 思路 先思考递归结束条件,什么时候会结束呢,就是到 digits 最后一位长度的的时候,index 指的就是当前电话号码的索引,从 0 开始。 接下来遍历当前电话号码上的按
56.子集
题目链接 解法1 dfs回溯 思路 每次进来直接将路径先放在结果集里,然后再去根据 index 来递归后面的数字。 为什么要根据 index 呢?因为要保证结果去重,数组里每个数不一样,根据 inde
55.全排列
题目链接 解法 dfs回溯 思路 先从数组第一个数开始放入,然后递归去放后面的数字,要记得恢复现场。结束条件就是数组当前长度与nums长度相等,说明所有数字都已经放完了。 同时也需要额外空间去保存之前
54.实现 Trie (前缀树)
题目链接 解法 数组和ascii码实现 思路 利用 ascii 码的特性算出数组的 index 代码 解法2 map实现 思路 方法的整体逻辑和数组实现一样,只不过换了底层的数据结构,map 适合存储
53.课程表
题目链接 解法1 dfs检测 思路 图论的建模一般使用邻接表或者邻接矩阵,而这题边比较少,所以适合邻接表。 首先对课表进行建模,建完之后去检测是否成环。 关键是如何判定成环呢? 我们可以使用一个数组来
52.腐烂的橘子
题目链接 解法 bfs扩展 思路 我刚开始的想法是和岛屿数量一样,去给他沉没掉,结果发现并不行,如果存在多个腐烂的橘子,它的腐烂传递应该是相同开始的。 所以这就不能使用 dfs 去解答,但是扩展的思路
51.岛屿数量
题目链接 解法 dfs+沉没岛屿 思路 计算岛屿的数量,本质上就是看当前位置上的 1 上下左右是否有数字 1 ,如果没有,则这是一块岛屿,反之则视为一整块。 我们换个角度,先从遍历开始,如果当前位置是
50.二叉树中的最大路径和
题目链接 解法 递归 思路 要求最大的路径和这个大的问题,我们可以将它拆解成子问题左子树最大的路径和与右子树最大路径和以及当前节点。 那单个节点的最大路径和就是它自己,如果它有左右子树,尝试累加起来即
49.二叉树的最近公共祖先
题目链接 解法1 暴力解法 思路 最简单的方法就是从根节点开始往下找 p 和 q 。并把路径上的节点记录下来,然后逐个比较是否相等。 代码 时空复杂度 时间复杂度:O(n) 两遍遍历 空间复杂度:O(
48.路径总和 III
题目链接 解法1 暴力遍历所有路径 思路 不需要从跟节点开始说明了可以从任意节点开始累加到 targetSum。但是我们先处理从根节点开始如何去递归。 如果当前节点为空肯定返回 0 。然后加上当前节点
47.从前序与中序遍历序列构造二叉树
题目链接 解法1 暴力解法 思路 前序遍历的第一个节点是根节点,而根据根节点的值,再到中序遍历中寻找根节点,而这根节点左边则是左子树,右边则是右子树。递归处理即可。 代码 时空复杂度 主要是 slic
46.二叉树展开为链表
题目链接 解法1 暴力解法 思路 和之前链表的思路一致,先将节点缓存到数组当中。之后再去改变其结构。 不过要注意的是遍历的顺序是先序遍历。 代码 时空复杂度 时间复杂度:O(n) 空间复杂度:O(n)
45.二叉树的右视图
题目链接 解法1 层序遍历bfs 思路 右视图其实就是每一层的最后一个节点,这样我们可以通过层序遍历的方法,先把二叉树遍历出来形成一个二维数组。 而这个二维数组的每一维的最后一个数就是这个颗数的右视图
44.二叉搜索树中第 K 小的元素
题目链接 解法1 暴力解法 思路 根据二叉搜索树的特性,中序遍历出来的二叉搜索树是严格递增,于是我们可以在中序遍历的过程中去保存节点的值。最后通过找寻下标的方式去返回结果。 代码 时空复杂度 时间复杂
43.验证二叉搜索树
题目链接 解法1 递归 思路 验证二叉搜索树,可以参考验证对称二叉树的思想递归的去分解子问题。首先左子树的是二叉搜索树并且左子树的所有节点小于根节点,右子树也是二叉搜索树并且右子树的所有节点都大于根节
42.将有序数组转换为二叉搜索树
题目链接 解法 递归建树 思路 题目是要求构造一个平衡二叉树,那相对应的左右子树节点不能相差太多。而数组是有序的,那就应该取 中间元素 当根节点,左半边递归建左子树,右半边递归建右子树,这样就是平衡的
41.二叉树的层序遍历
题目链接 解法 bfs层序遍历 思路 使用队列遍历即可。 代码 时空复杂度 时间复杂度:O(n) 空间复杂度:O(n)
下一页