首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
学算法刷LeetCode
橙午月
创建于2021-06-02
订阅专栏
不求多,求精
等 2 人订阅
共22篇文章
创建于2021-06-02
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
图解选择排序
选择排序是一种排序算法,每次迭代时,从未排序的列表中选择最小的一个,然后把这个元素放在未排序列表的前面。 有人觉得这个过程和打牌时整理牌的大小的过程一致,深以为然。 选择排序的工作原理 选择第一个元素
图解冒泡排序
冒泡排序 冒泡排序是排序算法的一种,通过比较和交换两个相邻的元素,直到按照想要的顺序(从小到大或从大到小)为止。简言之:两两排序。 冒泡排序的工作原理 假如我们将要将元素升序排序。 第一次迭代(比较和
703. 数据流中的第 K 大元素
最小堆 思路 最小堆中堆顶的元素就是这个堆里的最小值,堆的值按照从小到大排列。如果要得到“数据流中的第 K 大元素”,就需要从堆顶删除 K 个元素,此时堆顶的元素就是 “数据流中的第 K 大元素”。
239. 滑动窗口最大值
方法一: 最大堆 思路 可以创建一个满足 k 个元素的最大堆,同时将元素的下标也保存起来,如果滑动窗口中的元素个数大于等于 k 时,可以直接取最大堆里的最大元素的值,同时需要需要判断,这个最大元素是否
用 JavaScript 实现优先队列和堆
优先队列并不神秘,可以把它看成队列的一个升级版,即有优先级的队列。队列常用的例子是顾客去超市排队买单,那么优先队列就是老人可以优先买单。这里是根据人的年龄大小排,当然,我们也可以按照其他的条件排。当然
232. 用栈实现队列
题目 232. 用栈实现队列 题目描述: {:width=400} 方法:双栈 思路 栈是先进后出,队列是先进先出。用两个栈,一个栈管进入的元素,用于 push 操作,一个栈把进入的元素的顺序调整成队
206. 反转链表
思路 解题方法 需要使用三个变量,prev 是新的链表的头节点, cur 则指向当前结点, next 用于保存当前结点的后一个结点的指针。 遍历链表,先把当前结点的下一个结点位置存到变量 next:n
142. 环形链表 II
[TOC] 思路1 第一次相遇:具体来说,快指针每次走两步,慢指针走一步,最后两个指针会有第一次相遇,这时候快指针走的步数是慢指针的两倍。 第二次相遇:重新定义一个指向头的指针,再和慢指针一起走,如果
学算法刷LeetCode:19. 删除链表的倒数第 N 个结点
思路1 因为删除的是倒数的第 N 个结点,只要把正数的节点位置算出来,删除节点即可。 解题方法1 步骤1:计算正数的位置、 链表只能从头节点开始遍历,要找到正数节点的位置,我们只需要: 链表的长度 -
学算法刷LeetCode:1684. 统计一致字符串的数目
1684. 统计一致字符串的数目 这道题其实就是在 `words` 里面的每个字符串找是否有不在 `allowed` 中的字母出现。
学算法刷LeetCode【剑指offer专题】:07.重建二叉树
题目描述 解题思路 复习二叉树的前序遍历和中序遍历 学算法刷LeetCode:二叉树的遍历和重建(一) 分析 我们知道,二叉树的前序遍历是先遍历根,再遍历左右子树,因此第一个节点就是根节点。我们的子问
学算法刷LeetCode:二叉树的遍历和重建(一)
简述二叉树 二叉树是每个节点最多两个分支的树形结构。遍历方式可以从上向下逐层遍历,先访问离根最近的节点,称为广度优先遍历,也可以从根节点开始,向最远的节点遍历,称为深度优先遍历,此外,再根据根节点的访
学算法刷LeetCode【剑指offer专题】:52. 两个链表的第一个公共节点
题目描述 52. 两个链表的第一个公共节点 解题思路 思路一: 前后双指针(数节点) 前后双指针其实指的是一个指针先走 n 步,另一个指针再与前一个指针以相同的速度走。用到这个思路的还有 学算法刷Le
学算法刷LeetCode【剑指offer专题】:22. 链表中倒数第k个节点
题目描述 解题思路 思路一: 遍历,将倒数第k个节点变成正数第 n-k 个节点 单链表算倒数第 K 个节点的难处在于无法从尾向头遍历,只能从头向尾遍历,但是如果我们知道链表的长度 n,知道要返回倒数第
学算法刷LeetCode【剑指offer专题】:18. 删除链表的节点
题目描述 解题思路 题目中提示这是个蛋链表,单链表的特征就是节点中有一个指向下一个节点的指针,如果要删除一个节点,直接这个节点的前一个节点指向它的下一个节点即可。跳过要删除的节点,这个节点就被删除了。
学算法刷LeetCode【剑指offer专题】:06. 从尾到头打印链表
题目描述 思路 思路一 遍历 遍历节点,将链表的值存到数组里面,这里有两种方法: 存的时候就从数组的头部插入(unshift()),这样直接返回该数组即可。(见解法1) 增加一个新的数组2,遍历链表的
学算法刷LeetCode【剑指offer专题】: 59 - I. 滑动窗口的最大值
题目描述 解题思路 还记得59-II.队列的最大值这道题的解法吗?这道题难度是困难 ,实际上理清思路并不难,无非就是滑动窗口+单调度双端队列的结合。我们来一步一步拆解一下: 第一步 总思路:我们准备一
学算法刷LeetCode【剑指offer专题】:59-II.队列的最大值
题目描述 59-II.队列的最大值 解题思路 思路1(暴力解法) 使用队列的特性尾部插入,头部删除实现 push_back 和 pop_front, 至于寻找最大值,则遍历队列元素,找到最大值就返回,
学算法刷LeetCode【剑指offer专题】:30.包含min函数的栈
题目描述 30.包含min函数的栈 解体思路 这道题只对时间复杂度有要求,那可以在空间复杂度上放宽。因此,我们可以使用两个栈, 栈1正常实现的 push、pop()、top() 等 API 栈2则用于
剑指 Offer 09. 用两个栈实现队列
题目描述 剑指 Offer 09. 用两个栈实现队列 方法:双栈 解题思路 理清栈的特性是什么? 栈类似摞一堆书,放一本新书的时候是放在前一本书的上面,拿走一本书的时候得拿最上面的书,除此之外,没有其
下一页