首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Hello 算法
方圆想当图灵
创建于2024-09-02
订阅专栏
算法学习指南,包含整理的文章和刷题记录,参考宫水三叶博主、《算法(第四版)》、《算法导论》和《Hello 算法》等技术书籍
等 4 人订阅
共20篇文章
创建于2024-09-02
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
算法学习心得
这篇文章是我学习算法的心得,希望它能够给一些将要学习算法且准备要读大部头算法书籍的朋友一些参考,节省一些时间,也为了给经典的“黑皮书”祛魅,我觉得这些书籍在大部分互联网从业者心中已
关于双指针算法问题的思考
本篇是对双指针算法的总结,我将它分成了数组和字符串类型的题目,大家可以按照文章题目的顺序进行练习,如果大家想要找刷题路线的话,可以参考 Github: LeetCode。
滑动窗口算法技巧
在我刷了一些滑动窗口相关的题目之后,发现很有技巧性,只要掌握了解题思路,就会很简单,所以我决定用这篇帖子记录一下,也帮助同样在刷滑动窗口相关题目的同学。
二分查找是偏爱细节的魔鬼
二分查找本质上是一个规模退化且固定规模减小一半的分治算法,它的 思路很简单,但细节是魔鬼。通常我们会认为二分查找的应用场景是数组有序(单调),但实际上它也能在无序数组中应用...
从 LinkedHashMap 源码到手撕 LRU 缓存
最近在刷 LeetCode 上LRU缓存的题目,发现答案中有 LinkedHashMap 和自己定义双向链表的两种解法,但是我对 LinkedHashMap 相关源码并不清楚,所以
手撕 LFU 缓存
LFU 的缩写是 Least Frequently Used,简单理解则是将使用最少的元素移除,如果存在多个使用次数最小的元素,那么则需要移除最近不被使用的元素。
单调栈和单调队列可以很简单
我觉得单调栈和单调队列的题目很有特点,而且理解了它的特点能够很轻松容易地解决一系列题目,所以决定用这篇帖子记录一下,也想以此来帮助在刷同样类型题目的朋友们。
一文搞懂优先队列及相关算法
优先队列在 Java 中的定义是 PriorityQueue,它是基于 二叉堆 数据结构实现的,其中的元素并不是全部有序,但这种数据结构能够支持高效地 获取或删除最值元素。
时间复杂度为 O(n^2) 的排序算法
对于小规模数据,我们可以选用时间复杂度为 O(n2) 的排序算法,因为时间复杂度并不代表实际代码的执行时间,而且它也省去了低阶、系数和常数,仅代表的增长趋势,所以在小规模数据情况下...
时间复杂度为 O(nlogn) 的排序算法
归并排序遵循分治的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后合并这些子问题的解来建立原问题的解...
时间复杂度为 O(n) 的排序算法
本文介绍线性排序,即时间复杂度为 O(n) 的排序算法,包括桶排序,计数排序和基数排序,它们都不是基于比较的排序算法,大家重点关注一下这些算法的适用场景。
树专题 —— 二叉树前序遍历
本篇关于二叉树的前序遍历,主要由题目进行展开,如果大家想要找刷题路线的话,可以参考 Github: LeetCode。
树专题 —— 二叉搜索树和中序遍历
大家好,我是 方圆。我准备把树写成一个专题,包括二叉搜索树、前序、中序、后序遍历以及红黑树,我也想试试能不能将红黑树写好。 本篇是关于二叉搜索树,也是所有后续学习的基础,其中会涉及前序、中序、后序遍历
树专题 —— 二叉树后序遍历
本篇关于二叉树的后序遍历,依然是由题目来展开,如果大家想要找刷题路线的话,可以参考 Github: LeetCode。
树专题 —— 二叉树层序遍历
本篇关于二叉树的层序遍历,主要以题目为主,而且我觉得层序遍历是求解二叉树问题中最简单的,学会了基本的层序遍历,在这基础上的扩展题也能迎刃而解。
深入理解回溯算法
大家好,我是 方圆,本篇我们来讲回溯。回溯相当于穷举搜索,它会尝试各种可能的情况直到找到一个满足约束条件的解,寻找解的手段一般通过 DFS 实现,是一个 增量构造答案 的过程。回溯法适用于解决能够将原
深入理解树状数组
关于各类区间和问题有很多种解法,我们可以根据题目要求选择解题的方向,树状数组是其中能解决问题最多的,而且它相比于线段树代码量更少更简单,是我们优先选择的方法。
深入理解线段树
线段树(Segment Tree) 是常用的维护 区间信息 的数据结构,它可以在 O(logn) 的时间复杂度下实现单点修改、区间修改、区间查询(区间求和、区间最大值或区间最小值)
树专题 —— 深入理解左倾红黑树
本篇我们来讲一下左倾红黑树,大部分内容参考的是《算法 第四版》,希望大家能有耐心看完,不过更希望大家有精力去读原书。
树专题 —— 深入理解经典红黑树
本篇我们讲红黑树的经典实现,Java中对红黑树的实现便采用的是经典红黑树。前一篇文章我们介绍过左倾红黑树,它相对来说比较简单,需要大家看完上篇再来看这一篇,因为旋转等基础知识不会再本篇文章中赘述。