首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
前端程序员的算法训练之路
旋风洋芋
创建于2021-12-10
订阅专栏
算法是很多前端程序员薄弱的环节,希望能有进一步提升。
等 1 人订阅
共48篇文章
创建于2021-12-10
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
[路飞]_算法_队列_数据流中的第 K 大元素
题目描述 设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。 请实现 KthLargest 类: KthLargest(int k, int
[路飞]_算法_数组_最后一块石头的重量
题目描述 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x ==
[路飞]_算法_数组_最小的k个数
题目描述 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 1: 输入:arr = [3,2,1], k
完全二叉树的节点个数(三步优化)
题目描述 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在
[路飞]_算法_二叉树_路径总和
题目描述 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,
[路飞]_算法_斐波那契数列
题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得
[路飞]_算法_第K个语法符号
题目描述 在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。 给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始) 例子: 注意: N 的范围 [1,
[路飞]_算法_链表_ 分隔链表
题目描述 给你一个头结点为 head 的单链表和一个整数 k ,请你设计一个算法将链表分隔为 k 个连续的部分。 每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过 1 。这可能会导致有些部分
[路飞]_算法_链表_ 分割链表
题目描述 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。
[路飞]_算法_链表_ 环路检测
题目描述 给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。若环不存在,请返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定
[路飞]_算法_链表_设计链表
题目描述 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需
[路飞]_算法_链表_删除链表的节点
题目描述 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 示例 2: 说明: 题目保证链表中节点的值互不相同 若
[路飞]_算法_链表_ 复制复杂链表
题目描述 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。
[路飞]_算法_链表_ 删除中间节点
题目描述 若链表中的某个节点,既不是链表头节点,也不是链表尾节点,则称其为该链表的「中间节点」。 假定已知链表的某一个中间节点,请实现一种算法,将该节点从链表中删除。 例如,传入节点 c(位于单向链表
[路飞]_算法_链表_两数相加 II
题目描述 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。
[路飞]_算法_链表_ 链表中倒数第k个节点(快慢指针)
题目描述 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、
[路飞]_算法_链表_ 重排链表
题目描述 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L
[路飞]_算法_栈_ 基本计算器 II
题目描述 解题思路 整体上先乘除后加减 。先遍历一遍,把需要加减的数先存起来,需要乘除的直接运算,再遍历一遍把左右需要加减的加起来。 所以到最后其实都是做加法 用数组来记录待加减的项 遍历字符串,判断
[路飞]_算法_链表_返回倒数第 k 个节点
题目描述 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 注意:本题相对原题稍作改动 示例: 说明: 给定的 k 保证是有效的。 来源:力扣(LeetCode) 链接:https:/
[路飞]_算法_树_验证二叉树的前序序列化
题目描述 序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 例如,上面的二叉树可以被序列化为字符串
下一页