首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode 刷题
前端阿乐
创建于2021-11-23
订阅专栏
小白学算法
等 3 人订阅
共87篇文章
创建于2021-11-23
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
[路飞]_LeetCode_765. 情侣牵手
这题也是连通性的问题,连通性的问题可以使用并查集解决; 把相邻座位上的两个情侣编号合并,情侣编号 = row[i] / 2; 统计并查集中父节点不是自己的节点个数,就是需要交换的次数;
[路飞]_LeetCode_721. 账户合并
账户合并的条件是找出有相同邮箱的账户,所以是个连通性的问题,连通性的问题都可以用并查集来实现,操作步骤:将有相同邮箱的账户合并;把父节点不是自己的节点合并到父节点 将每个账户的邮箱去重后排序
[路飞]_LeetCode_347. 前 K 个高频元素
1. 通过 Map 统计数组出现的次数;2. 将统计结果加入一个维护 k 个元素的小顶堆中,如果当前数字出现的次数大于堆顶元素则出队列,再将当前数字入队列;3. 将小顶堆中的元素取出并返回;
[路飞]_LeetCode_451. 根据字符出现频率排序
1. 通过 Map 统计字符出现次数;2. 将字符次数入大顶堆 MaxPriorityQueue;3. 将堆中有序的元素反向生成字符串;
[路飞]_LeetCode_973. 最接近原点的 K 个点
1. 点[x, y]到原点(0, 0) 的距离 = sqrt(x^2 + y^2);2. 我们把所有点到原点的距离计算出来,放入一个保持k个元素的大顶堆,如果当前点的距离大于堆顶元素则出队列
[路飞]_LeetCode_124. 二叉树中的最大路径和
计算最大路径和的时候可以不进过根节点,甚至可以是树中的某一个节点,譬如有个节点是正数,其它节点都为负数的情况,最大路径和就是这个节点的值。从叶子节点开始计算,看每个节点能给最大路径贡献的值是多少
[路飞]_LeetCode_230. 二叉搜索树中第K小的元素
根据二叉搜索树的特点,根节点的值比左子树中每个节点的值大,比又子树中每个节点的值小。通过中序遍历可以得到一个有序的升序序列。所以通过中序遍历取第 k 个节点就可以了。
[路飞]_LeetCode_199. 二叉树的右视图
看图容易理解成取右子树的所有右节点。其实题目意思是要取每一层最右边的节点,那我们通过层遍历取每层最右边的节点就可以了。
[路飞]_LeetCode_313. 超级丑数
前面我们有介绍过动态规划求解丑数,这道题的区别在于质因数是通过参数动态给出的。所以我们在通过质因数计算数字的时候也要是动态的
[路飞]_LeetCode_104. 二叉树的最大深度
这道题有广度优先和深度优先两种解法,分别对应着循环和递归,递归的解法代码教简洁。这里我们用队列的方式,一层一层统计深度。
[路飞]_LeetCode_264. 丑数 II
1. 递推公式:dp[i] = Math.min(dp[p2] * 2, dp[p3] * 3, dp[p5] * 5);2. 初始状态:dp = [0, 1]
[路飞]_LeetCode_295. 数据流的中位数
1. 把列表中的数字分两个区域,用一个大顶堆存小数,一个小顶堆存大数;2. 两个堆都为空时添加到小数区,要添加的数小于等于小数区的最大元素时加入小数区,否则加入大数区;3. 保持两个区的数字差不大于1
[路飞]_LeetCode_355. 设计推特
我们要从两个方面考虑这道题,1、用什么来存数据;2、怎么查询数据。使用数组存储推文,并且用数组长度当作排序序号,使用双层 Map 存储关注关系
[路飞]_LeetCode_692. 前K个高频单词
1. 这道题属于中级,难点在于排序,凡是计数的都可以用 Map;2. 用 Map 计数后再通过一个关联的数组(数组中只包括去重后的单词)进行排序;3. 最后返回排序后的数组的前 k 个单词
[路飞]_LeetCode_数组中的第 K 个最大元素
1. 通过最小优先队列解题;2. 把数组中的元素依次入队列;3. 把第 k 个后面的元素都出队列;4. 再次出队列的元素就是第 k 大的元素
[路飞]_LeetCode_1046. 最后一块石头的重量
1. 当不知道 LeetCode 有 MaxPriorityQueue 的时候实现起来有点麻烦;2. 当知道有 MaxPriorityQueue 可以用的时候就呵呵了,这也太简单了吧,送分题;
[路飞]_LeetCode_110. 平衡二叉树
从树的叶子节点计算高度,所以这里使用后序遍历,叶子节点的左右子节点高度返回0,节点的高度等于左右子节点最大的那个节点的高度加1,如果左右子节点高度的绝对值大于1时返回-1
[路飞]_LeetCode_703. 数据流中的第 K 大元素
1. 维护一个升序队列,添加新元素时对队列进行升序排序;2. 把第k大元素以前的元素出队列;3. 返回第0个元素
[路飞]_LeetCode_剑指 Offer 40. 最小的k个数
1. 这道题属于简单级别的题,核心在于对原数组排序,只要能写出排序就能答出这道题;2. 这里我们用快速排序来答题,因为快速排序时间复杂度表现比较好;3. 排序后把数组中下标大于k-1的元素pop掉再返
[路飞]_LeetCode_103. 二叉树的锯齿形层序遍历
将当前层的节点入队列,再通过for循环取队列中节点的值,这里的for循环的次数决定了本层节点值的顺序,偶数行按顺序排列,奇数行按倒序排列,for循环的长度就是队列当前节点个数。循环的同时将节点出队列,
下一页