01 2023 档案
摘要:本文首发:啊这,一道数组去重的算法题把东哥整不会了… 读完本文,你不仅学会了算法套路,还可以顺便解决如下题目: 316. 去除重复字母(中等) 1081. 不同字符的最小子序列(中等) 关于去重算法,应该没什么难度,往哈希集合里面塞不就行了么? 最多给你加点限制,问你怎么给有序数组原地去重,这个我们
阅读全文
摘要:本文首发:谈谈游戏中的随机算法 读完本文,你不仅学会了算法套路,还可以顺便解决如下题目: 382. 链表随机节点 398. 随机数索引 384. 打乱数组 没事儿的时候我喜欢玩玩那些经典的 2D 网页小游戏,我发现很多游戏都要涉及地图的随机生成,比如扫雷游戏中雷的位置应该是随机分布的: 再比如经典炸
阅读全文
摘要:本文首发:如何用算法高效寻找素数? 读完本文,你不仅学会了算法套路,还可以顺便解决如下题目: 204. 计数质数(简单) 素数的定义看起来很简单,如果一个数如果只能被 1 和它本身整除,那么这个数就是素数。 虽然素数的定义并不复杂,恐怕没多少人真的能把素数相关的算法写得高效。 比如力扣第 204 题
阅读全文
摘要:本文首发:随机算法之水塘抽样算法 读完本文,你不仅学会了算法套路,还可以顺便解决如下题目: 382. 链表随机节点(中等) 398. 随机数索引(中等) 我最近在力扣上做到两道非常有意思的题目,382 和 398 题,关于水塘抽样算法(Reservoir Sampling),本质上是一种随机概率算法
阅读全文
摘要:本文首发:我用消息队列做了个联机游戏 上篇文章我讲了两种常用的随机算法,本文就把这些算法运用出来,做一个多人在线小游戏。 我小时候特别喜欢在 4399 玩一款叫做 Q 版泡泡堂的游戏: 游戏里玩家可以操控一个机器人放炸弹,炸开障碍物能够获取随机道具,玩家消灭所有其他机器人则闯关成功,如果被其他机器人
阅读全文
摘要:最近有一位读者跟我交流,说除了算法题之外,系统设计题是一大痛点。算法题起码有很多刷题平台可以动手实践,但系统设计类的题目一般很难实践,所以看一些教程总结也只是一知半解,遇到让写代码实现系统的就懵了。 比如他最近被问到一个大型爬虫系统的设计题,让手写一致性哈希算法,加上一系列 follow up,就被
阅读全文
摘要:记得我的 leader 之前说过,很多人工作之后就丧失了钻研技术的热情,这个确实,我发现自己多少也有这个问题。 转眼已经毕业一年多了,回想这一年,有些惭愧,感觉不仅技术能力上并没有什么特别值得一提的进步,而且在其他各个方面都觉得自己有待提高。 和身边一些朋友交流之后,他们大多表示有同感,感觉工作后就
阅读全文
摘要:我在上篇文章 Apache Pulsar 的架构设计 中介绍了 Pulsar 存算分离的架构,其中 broker 只负责计算,由 BookKeeper 负责底层的存储,我还画了这样一张图说明 BookKeeper 读写分离的设计: 但是再深究下去,memtable具体是以怎样的格式持久化到磁盘上的呢
阅读全文
摘要:经常有读者后台跟我说,希望我能够写一些系统设计相关的文章,最近我就在研究常用消息队列 kafka 和 pulsar 的架构设计,所以总结了这篇文章,希望在你做技术选型或阅读源码的时候起到一定的帮助。 我们从一个面试的场景开始好了。 面试官:了解 Kafka 吗?简单介绍下? 我张口就来:Kafka
阅读全文