首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
算法
专业抄代码选手
创建于2024-07-08
订阅专栏
一些算法题目
暂无订阅
共217篇文章
创建于2024-07-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【leetcode】20. 有效的括号
典型的用stack来解决的题目,同时可以看下22题 用 栈 来解决这个问题,因为栈遵循 后进先出 的原则,非常适合处理括号匹配问题。当遇到左括号时,将其压入栈中;当遇到右括号时,检查栈顶是否是相应的左
【leetcode】1331. 数组序号转换
建立映射即可 排序并去重:首先将数组进行排序,得到升序排列的唯一元素。 映射排名:为每个唯一的元素分配一个排名值(从 1 开始递增)。 构建结果:最后遍历原数组,按照每个元素在排序后数组中的排名,构建
【leetcode】2089. 找出数组排序后的目标下标
对于二分查找来说,并非简单的查找到目标元素即可,例如这一题,要求查找到排序后的第一个以及最后一个元素的索引。 下面分别用了两个函数来实现,其中细节不同在于while内的if判断,这里的判断根据条件不同
【leetcode】153.寻找旋转排序数组中的最小值
判断最小值所在区间: 如果 nums[mid] > nums[right],说明最小值在右半部分,因此将 left 指针右移到 mid + 1。 否则,最小值在左半部分(包含 mid),因此将 rig
【leetcode】33. 搜索旋转排序数组
判断哪一部分是有序的: 通过检查中间元素和左右边界的关系,确定左半部分或右半部分是有序的。 缩小搜索范围: 如果目标值在有序部分的范围内,则继续在该部分中进行二分查找。 否则,在另一部分中进行搜索。
【leetcode】34. 在排序数组中查找元素的第一个和最后一个位置
用二分查找找到符合条件的左右边界,这里考察的点还是在nlogn的时间内来处理这件事 所以直接用二分查找,然后在left--,right++这样子处理,时间复杂度还是达不到要求 还是要全部都用二分来查找
【leetcode】 74. 搜索二维矩阵
可以利用35题的结论来解决这一题 先查找适用的行,确定行之后,再在该行里面寻找适合插入的元素位置,最后将该位置与target比对即可 逐步查找 更优雅的解法
【leetcode】124. 二叉树中的最大路径和
对于每个节点,计算从该节点出发的左子树和右子树的最大路径和。 对于当前节点,可以选择左子树和右子树中的一个路径(如果路径和为负数,可以不选),或者不选择任何子树,只使用当前节点的值。 计算路径和的四种
【leetcode】236. 二叉树的最近公共祖先
如果当前节点是 null,返回 null。 如果当前节点是 p 或 q,直接返回当前节点。 递归地在左右子树中寻找 p 和 q。 如果在左右子树中分别找到了 p 和 q,说明当前节点就是 LCA。 如
【leetcode】437. 路径总和 III
这一题比较明显的需要使用dfs来解决 错误代码 这里的代码没有考虑到每个节点开始遍历的情况 正确代码 DFS (深度优先搜索) : dfs 函数从当前节点开始,计算从该节点出发的路径和是否等于 tar
【leetcode】105. 从前序与中序遍历序列构造二叉树
根据前序遍历、中序遍历来生成树,这里的要求就是要懂,前中后序的遍历过程了 前序:根左右 中序:左根右 后序:左右根 有了这个结论之后,可以得出,可以先根据前序来找到根节点,然后在中序遍历里面找到根节点
【leetcode】114. 二叉树展开为链表
递归 递归展开左右子树: 我们首先将左子树和右子树分别展平(通过递归)。 处理根节点: 将原来的右子树暂存,接着将展平后的左子树移动到右子树的位置,并将左子树设为 null。 连接右子树: 找到当前右
【leetcode】199. 二叉树的右视图
这一题就要学会思维转换了,要看最右侧的节点,那就进行层序遍历,然后返回每一层的最后一个节点就好了。 层序遍历 优化 上述代码存在一定的冗余,还是需要使用层序遍历,但是没必要把层序遍历的结果存下来
【leetcode】230. 二叉搜索树中第 K 小的元素
理解二叉搜索树的含义,中序遍历二叉搜索树时,产生的结果就是一个有序的数列,利用这个性质来做这题。 递归 非递归
【leetcode】98. 验证二叉搜索树
左子节点的值必须小于当前节点的值,因此它的上限为当前节点的值。 右子节点的值必须大于当前节点的值,因此它的下限为当前节点的值。
【leetcode】543. 二叉树的直径
说这一题,就先要说下二叉树的最大深度这一题,这里就用到这这个思想,分别计算当前节点的最优子树的最大深度,然后返回最大深度即可。
【leetcode】104. 二叉树的最大深度
其实这一题没啥好说的,主要是由这一题引申到543题 这里来计算最大深度,每次都是 +1即可 如果当前节点为空(即为 null),那么树的深度为 0。 如果当前节点不为空,递归地计算其左子树和右子树的最
【leetcode】101. 对称二叉树
方法 1: 递归 对称的条件是:根节点的左子树和右子树相互镜像。 对于两个树 A 和 B,它们是镜像对称的当且仅当: 它们的根节点值相同。 A 的左子树与 B 的右子树镜像对称。 A 的右子树与 B
【leetcode】226. 翻转二叉树
我们可以使用递归来翻转二叉树。对于每个节点,我们交换其左子树和右子树,并递归地对左右子树进行同样的操作。 递归1 递归2 bfs
【leetcode】104. 二叉树的最大深度
如果当前节点为空(即为 null),那么树的深度为 0。 如果当前节点不为空,递归地计算其左子树和右子树的最大深度,然后取两者的最大值,再加上当前节点的深度(即 1)。
下一页