labuladong

其他

我的新书出版啦!

本下单的都是亲笔签名版,这其中又有几十本会包含随机寄语作为彩蛋:我还录了个简单的开箱视频,展示新书的外观:当然,我知道大家对新书有一些疑问,我在这篇推文中统一回答一下。《算法笔记》纸质书和之前发布的
2023年9月11日
其他

labuladong 的刷题全家桶说明书

三个不同平台的刷题插件组成,致力于为大家提供最丝滑的刷题体验。公众号后台回复关键词「全家桶」即可获取下载和使用手册。一、公众号/学习网站内容当然是我的系列算法教程中最核心的部分,其他的插件和
2023年4月20日
其他

labuladong 公众号/网站使用说明

我在每篇文章末尾添加了该文章相关的其他文章及其他算法题,你点击链接就可以跳转过去:而且如果你安装了后文介绍的
2023年2月28日
其他

用 chatGPT 提高效率的套路总结

AI,是未来需要不断学习探索的课题。————————————本文就讲到这里,后台回复「目录」可查看精选文章目录,回复「PDF」可下载最新的刷题全家桶。扫码打开我的店铺查看更多高质量课程:
2023年2月28日
其他

《算法秘籍》和《刷题笔记》PDF 下载

了解下各种跳转有多方便:下载方式只需关注我的公众号「labuladong」,在后台回复关键词「pdf」即可免费下载这两本
2023年2月24日
其他

JetBrains 刷题插件安装使用手册

开发,所以继承了该插件的所有功能,说明文档如下:https://github.com/shuzijun/leetcode-editor/blob/master/README_ZH.md除了
2023年2月24日
其他

vscode 刷题插件使用指南

插件,需要先卸载,否则会因为共用了相同的配置而产生冲突。请放心,因为我的插件功能是官方插件的超集,所以卸载原插件也完全不会影响之前的插件配置和代码文件。更新方式默认情况下,vscode
2023年2月24日
其他

Chrome 刷题插件安装使用手册

去解决更多新的的算法题。我的文章和思路是经过精心设计浑然一体的,每道题的思路中会引用所有相关的技巧,插件可以保证你看到一道题,都可以寻根溯源由浅入深地学习到对应的算法技巧。比如「丑数
2023年2月24日
其他

一致性哈希算法设计题,栽了

consumer。那么如何优化这个算法呢?就要用到一致性哈希算法了。一致性哈希算法的实现结合我在本文开头对一致性哈希算法的介绍,应该很容易想到优化思路。其实现在
2023年1月3日
其他

刷题打卡挑战第 15 期 1/4-1/18

用来奖励完成挑战的学员:我是希望每个参与者都能顺利拿回押金的,所以打卡要求很简单,稍微上点心肯定能完成挑战,最后押金会原路退回:奖金将会通过群红包的方式发放给大家。扫码进入「labuladong
2022年12月21日
其他

CRUD 一年多,我的破局思路

这样一个云原生消息队列是面向未来的选择;对社区来说,公司使用场景中遇到的问题和需求能反哺项目的发展;对个人来说,也是参与开源社区的绝佳切入点。如果你是个人学习,那么先认真阅读官网的文档,搭建一个
2022年11月3日
其他

labuladong 刷题三件套

我一直都是以做一个产品的态度来做「labuladong」这个公众号:致力于把算法讲清楚,让刷题变简单。有了两年多的内容积淀,我终于成功赋能,找到了抓手,打出了一套算法组合拳,形成了刷题闭环(手动狗头)。刷题三件套共包含《labuladong
2022年10月24日
其他

我用消息队列做了一款联机小游戏

中读取并执行Event序列。这样一来,游戏房间的概念有了,而且所有游戏客户端展现的事件顺序就是消息队列中消息的顺序,能够保证不同玩家的操作都是同步的。不过这里还有个问题,怎么做到每隔
2022年10月18日
其他

说透游戏中常用的两种随机算法

1/(i+2),以此类推,相乘的结果是第i个元素最终被选中的概率,也就是1/n。因此,该算法的逻辑是正确的。同理,如果要在单链表中随机选择k个数,只要在第i个元素处以k/i的概率选择该元素,以1
2022年9月30日
其他

存储系统中的算法:LSM 树设计原理

的加强版,但考虑到数据文件格式的设计,真正的代码实现非常复杂。所以一般来说,我们了解磁盘数据结构的原理,了解各个操作的时间复杂度就可以了,没必要特别纠结它的具体实现。数据可变
2022年9月19日
其他

大更新!!!

这段时间把我的「刷题全家桶」更新了若干方便好用的功能,本文简单总结下,大家赶紧用起来。插件更新1、为了帮助你更好地看懂算法逻辑,所有插件支持代码块内的图片注释,鼠标移动到小灯泡图表即可弹出图片辅助理解:Chrome
2022年9月9日
其他

面试官让我重构 Kafka,懵了……

的,突如其来的这波反向操作可把我难住了。面试官肯定一眼就看出来我在背八股文,对消息队列没有什么深入的研究,笑了笑,语重心长地教导我:正所谓时势造英雄,任何新技术的出现都是时代的产物,不存在
2022年8月25日
其他

我来手把手带你搞定《剑指 offer》

labuladong后台回复课程查看精品课点击卡片可搜索文章👇读完本文,可以解决所有剑指offer题目最近两周,我把刷题插件进行了升级,支持了中文力扣上剑指
2022年7月23日
其他

B 站十连发

到算法底层的思维逻辑。后续我还会继续把一些我认为经典的算法文章更新成视频,大家可以在
2022年7月8日
其他

labuladong 的 Chrome 刷题插件安装使用手册

版:https://leetcode.com/list/9zwo3ww5/3、插件和网站支持代码行内图片注释,鼠标移至小灯泡图标即可查看:其他详细功能说明见后文。安装方式Chrome
2022年4月24日
其他

东哥手把手带你刷二叉树(纲领篇)

吗?2、请分析,后序遍历有什么特殊之处?3、请分析,为什么多叉树没有中序遍历?答不上来,说明你对前中后序的理解仅仅局限于教科书,不过没关系,我用类比的方式解释一下我眼中的前中后序遍历。首先,回顾一下
2022年3月29日
其他

快速排序的正确理解方式及运用

通过二叉树的视角描述了归并排序的算法原理以及应用,很多读者大呼精妙,那我就趁热打铁,今天继续用二叉树的视角讲一讲快速排序算法的原理以及运用。快速排序算法思路首先我们看一下快速排序的代码框架:void
2022年3月16日
其他

归并排序的正确理解方式及运用

hi);看这个框架,也就明白那句经典的总结:归并排序就是先把左半边数组排好序,再把右半边数组排好序,然后把两半数组合并。上述代码和二叉树的后序遍历很像:/*
2022年2月24日
其他

环检测算法及拓扑排序(修订版)

的修订版,补充了大量内容。首先,我说将后序遍历结果进行反转就是拓扑排序的结果,有的读者说他看到的很多解法直接使用后序遍历,并没有进行反转,本文新增了对此的解释。另外,有读者说,用
2022年2月10日
其他

Prim 算法,YYDS

算法用到了贪心思想,来满足权重之和尽可能小的问题:先对所有边按照权重从小到大排序,从权重最小的边开始,选择合适的边加入mst集合,这样挑出来的边组成的树就是权重和最小的。其次,Kruskal
2022年1月7日
其他

真⋅手把手带你刷通 100 道二叉树题目

所说,所有二叉树题目都被分为「遍历」和「分解问题」两种思路:对于一些可以使用多种思路的题目,我会同时提供所有思路的解法代码:对于一些需要前置知识的题目,我都给你安排好了:对于一些可以使用
2021年12月29日
其他

手把手刷二叉树系列完结篇

rightMax);}这个解法是正确的,但是运行时间很长,原因也很明显,traverse遍历每个节点的时候还会调用递归函数maxDepth,而maxDepth是要遍历所有子树的,所以最坏时间复杂度是
2021年12月24日
其他

图论算法基础(修订版)

等等,有兴趣的读者可以去看看,本文就到这了。_____________公众号后台回复关键词「目录」查看精选历史文章,回复「插件」下载刷题辅助插件。另外没关注我视频号的读者赶紧关注下,周末有空直播:
2021年12月20日
其他

「刷题外挂 V2.4」稳定版使用手册

浏览器类似):点击「选项」按钮即可对插件进行配置:1、刷题平台设置可以控制我的刷题网站的跳转:2、渲染设置可以选择是否对题目列表中有题解/思路的题目进行渲染:bug
2021年12月15日
其他

系统是如何给你匹配瓜皮队友的?

n-1]的数字出来作为索引就行了,每个元素被随机选到的概率都是1/n。但假设每个元素都有不同的权重,权重地大小代表随机选到这个元素的概率大小,你如何写算法去随机获取元素呢?力扣第
2021年11月25日
其他

东哥带你刷图论第五期:Kruskal 最小生成树算法

最后帮朋友打个广告,刘欣(@码农翻身)的新书《半小时漫画计算机》出版了,不仅和他的第一本书《码农翻身》一脉相承,浅显易懂,而且这次更绝,用漫画表现计算机技术,趣味性很强,你值得拥有!
2021年11月4日
其他

我写了一个「外挂」,让你刷题效率翻倍

几年前注册这个公众号,我的愿景就是想把算法讲清楚,让刷题变简单:有心的读者应该能体会到我在这些方面做的努力,首先为了方便大家在手机上学习算法,每篇公众号文章里我都提供了文章搜索入口:另外对于
2021年11月1日
其他

东哥带你刷图论第四期:二分图的判定

}}这种写法把对visited的判断放到递归调用之前,和之前的写法唯一的不同就是,你需要保证调用traverse(v)的时候,visited[v]
2021年10月27日
其他

DFS 算法秒杀五道岛屿问题

true;}因为二维矩阵本质上是一幅「图」,所以遍历的过程中需要一个visited布尔数组防止走回头路,如果你能理解上面这段代码,那么搞定所有岛屿问题都很简单。
2021年10月18日
其他

我的刷题经验总结

上述过程就是在不断优化算法的时间、空间复杂度,也就是所谓「如何聪明地穷举」,这些技巧一听就会了。但很多读者留言说明白了这些原理,遇到动态规划题目还是不会做,因为第一步的暴力解法都写不出来。
2021年9月26日
其他

一行代码就能解决的算法题

true;}这是为什么呢,因为题目有两个条件很重要:一是石头总共有偶数堆,石头的总数是奇数。这两个看似增加游戏公平性的条件,反而使该游戏成为了一个割韭菜游戏。我们以piles=[2,
2021年9月16日
其他

我写了一个模板,把 Dijkstra 算法变成了默写题

heights);我们常见的二维矩阵题目,如果让你从左上角走到右下角,比较简单的题一般都会限制你只能向右或向下走,但这道题可没有限制哦,你可以上下左右随便走,只要路径的「体力消耗」最小就行。
2021年9月7日
其他

列表形式目录

给我常数时间,我可以删除/查找数组中的任意元素
2021年8月28日
其他

二叉树八股文:递归改迭代通用模板

stk.pop();}如果在前序遍历的位置入栈,后序遍历的位置出栈,stk中的节点变化情况就反映了traverse函数的递归过程(绿色节点就是被压入栈中的节点,灰色节点就是弹出栈的节点):
2021年8月25日
其他

单链表的六大解题套路,你都见过么?

是的,但是算法题一般只给你一个ListNode头结点代表一条单链表,你不能直接得出这条链表的长度n,而需要先遍历一遍链表算出n的值,然后再遍历链表计算第n
2021年8月16日
其他

拓扑排序,YYDS!

我们说一个节点可以理解为一个任务,这个节点的子节点理解为这个任务的依赖,但你注意我们之前说的依赖关系的表示:如果做完A才能去做B,那么就有一条从A指向B的有向边,表示B依赖A。
2021年8月11日
其他

当老司机学会了贪心算法 🤔

对于这种贪心算法,没有特别套路化的思维框架,主要还是靠多做题多思考,将题目的场景进行抽象的联想,找出隐藏其中的规律,从而减少计算量,进行效率优化。
2021年7月28日
其他

众里寻他千百度:找网红算法

cand;}我们之前的解法用到了LinkedList充当一个队列,用于存储候选人集合,而这个优化解法利用other和cand的交替变化,模拟了我们之前操作队列的过程,避免了使用额外的存储空间。
2021年7月22日
其他

时间调度问题的千层套路

[[0,30],[5,10],[15,20]],那么我们就给数组中[0,30],[5,10],[15,20]这几个索引区间分别加一,最后遍历数组,求个最大值就行了。
2021年7月16日
其他

我写了一个套路,助你随心所欲运用二分搜索

left;}这段代码把之前的代码微调了一下,把直接访问nums[mid]套了一层函数f,其实就是多此一举,但是,这样能抽象出二分搜索思想在具体算法问题中的框架。
2021年7月5日
其他

毕 业 旅 行

正整数n代表城市个数,数组flights装着若干三元组代表城市间的航线及价格,城市编号src代表你所在的城市,城市编号dst代表你要去的目标城市,整数K代表你最多经过的中转站个数。
2021年6月17日
其他

算法大师——孙膑

}}根据这个思路,我们需要对两个数组排序,但是nums2中元素的顺序不能改变,因为计算结果的顺序依赖nums2的顺序,所以不能直接对nums2进行排序,而是利用其他数据结构来辅助。
2021年5月17日
其他

尴尬,一不小心把 Linux 管道给整漏了🥲

首先要回忆cat命令的行为,如果只执行cat命令,就会从命令行读取键盘输入的内容,每次按下回车,cat命令就会回显输入,也就是说,cat命令是逐行读取数据然后输出数据的。
2021年4月30日
其他

剪视频剪出一个贪心算法…

几个视频,也算是对视频剪辑入了个门。像我这种非专业剪辑玩家,不做什么宏大特效电影镜头,只是做个视频教程,其实也没啥难度,只需要把视频剪流畅,所以用到最多的功能就是切割功能,然后删除和拼接视频片接。
2021年4月26日
其他

为什么我没写过「图」相关的算法?

邻接矩阵则是一个二维布尔数组,我们权且成为matrix,如果节点x和y是相连的,那么就把matrix[x][y]设为true。如果想找节点x的邻居,去扫一圈matrix[x][..]就行了。
2021年3月26日