首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode 刷题
前端阿乐
创建于2021-11-23
订阅专栏
小白学算法
等 3 人订阅
共87篇文章
创建于2021-11-23
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
[路飞]_LeetCode_107. 二叉树的层序遍历 II
将当前层的节点入队列,再通过for循环取队列中节点的值,for循环的长度就是队列当前节点个数。循环的同时将节点出队列,如果节点有子节点则子节点入队列。按要求自底向上返回数组,所以树底层的节点插入数组最
[路飞]_LeetCode_589. N 叉树的前序遍历
1. 二叉树的前序遍历为:根-左子树-又子树;2. 这道题是N叉树,没有左、右子树,只有存放孩子节点的数组;3. N叉树遍历:根-子数组
[路飞]_LeetCode_剑指 Offer 32 - II. 从上到下打印二叉树 II
1. 题目中需要从上到下打印二叉树,也就是逐层打印;2. 那么我们可以用一个数组保存节点的值,并且保存节点的深度;3. 遍历节点时,以节点深度为数组下标,将节点值加到对应的深度中(即深度对应的层)
[路飞]_LeetCode_226. 翻转二叉树
1. 用分治的思想;2. 把根节点的左右子树互换;3.再递归把左子树和右子树的子节点翻转;4. 空节点跳过;
[路飞]_LeetCode_剑指 Offer 54. 二叉搜索树的第k大节点
二叉搜索树的中序遍历是一个有序升序数列,先遍历右子树再遍历左子树就是一个降序数列,用k计数,每遍历一个节点减1,k等于1时就是第k大的节点
[路飞]_LeetCode_222. 完全二叉树的节点个数
1. 递归遍历树,统计节点树;2. 整棵树的总数等于左子树 + 右子树的和 + 1,示例 1 递归展开如下:
[路飞]_LeetCode_剑指 Offer 10- I. 斐波那契数列
题目指出,返回的数要模一个1000000007,斐波那契数列递推公式是 F(N) = F(N - 1) + F(N - 2),为避免重复,从底往上推
[路飞]_LeetCode_112. 路径总和
使用分治的方式处理问题,示例1叶子节点到根节点的和为 22,那么叶子节点到根节点的左节点的和等于 17 即可,17为目标和减去根节点的值,即 22 - 5 = 17,根节点的右节点同理,只要左右子节点
[路飞]_LeetCode_725. 分隔链表
遍历链表统计节点总数,总数除以k得出每组子链表的个数,总数 % k得出未除尽的节点数,把这些节点分到靠前的子链表中
[路飞]_LeetCode_剑指 Offer 18. 删除链表的节点
创建虚拟头节点,把删除头节点的特殊情况变成一般情况,遍历链表,如果当前节点的下个节点的值是要删除的节点则删除下个节点,返回虚拟节点的下个节点。
[路飞]_LeetCode_面试题 02.08. 环路检测
如果是有环链表,当双指针相遇时,把快指针指向头节点,同时变成慢指针,两个指针同时向后走,相遇的位置就是环的起点。为什么把快指针指向头节点呢?因为在一个环内,快指针速度是慢指针的1倍,那么两个指针相遇的
[路飞]_LeetCode_682. 棒球比赛
依次取数组中字符,对4个规则做不同的栈操作:1. 数字时入栈;2. "+" 时取栈顶元素 + 第二个元素,相加结果入栈;3. "D" 时取栈顶元素 * 2,乘积入栈;4. "C" 时乘绩无效则出栈
[路飞]_LeetCode_1021. 删除最外层的括号
平时写if的时候,如果条件套了好多层时不知道括号是否匹对得上,我们会用数数的方法来判断,碰到左括号加1,碰到右括号减1,如果最终为0说明左右括号是匹对正确的。
[路飞]_LeetCode_844. 比较含退格的字符串
#号代表回退,也就是把前面的字符去掉,使用栈可以很方便地处理这种情况,字符依次入栈,当遇到#号时把栈顶元素去掉; 两个字符串通过第1步操作后再对比是否相等即可
[路飞]_LeetCode_面试题 03.04. 化栈为队
定义一个栈inStack,队列的push操作时入栈。定义一个outStack,出队列的时候从outStack出栈,如果outStack没元素了,就把inStack里的出栈后在outStack入栈
[路飞]_LeetCode_860. 柠檬水找零
能不能找零取决于自己手里有什么面值的钱,可以用来找零的只有 5 美元和 10 美元,所以每次找零我们要把这两种纸币数量记下来。
[路飞]_LeetCode_859. 亲密字符串
亲密字符串必须长度相等,长度相等后又分字符串完全相等和不等两种情况,完全相等时如果有重复字符则是亲密字符。如果不等则需要两个位置不同,且位置上的字符交叉相等则是亲密字符串
[路飞]_LeetCode_933. 最近的请求次数
返回过去 3000 毫秒内发生的请求数,那么新请求过来时,超出新请求时间 3000 毫秒以外的请求就可以去掉了。 这样我们可以用一个队列来实现,新请求过来时把不满足条件的请求出队列
[路飞]_LeetCode_1670. 设计前中后队列
队列操作使用数组的内置方法,中间操作时需要临时计算中间索引值,midIndex = Math.floor(queue.length / 2),队列长度为偶数的出栈时,计算后的索引需要减 1
[路飞]_LeetCode_641. 设计循环双端队列
根据设计循环队列我们只要将入队列和出队列的两个方法进行扩展即可:入队列分为从头入队列和从尾入队列,对应 unshift 和 push,出队列分为从头出队列和从尾出队列,对应 shift 和 pop
下一页