摘要: 引言 在一张固定地图上选择一条路径,当存在多条可选的路径之时,需要选择代价最小的那条路径。我们称这类问题为最短路径的选择问题。解决这个问题最经典的算法为Dijikstra算法,其通过贪心选择的步骤从源点出发逐步逼近目标点,从而得到起始点与目标点的最短路径。A*算法是在Dijikstra算法上做了改进 阅读全文
posted @ 2022-05-15 16:40 林学徒 阅读(3078) 评论(0) 推荐(4) 编辑
摘要: 引言 我们可能会有这样的一种需求,像是打车软件中呼叫附近的车来接送自己,或者是在qq中查看附近的人。我们都需要知道距离自己一定范围内的其它目标的集合。如果将上面举例的功能抽象出来,就是要实现以某个点为中心,以一定的距离为半径,在空间中查找其它点所构成的集合。诚然,当空间中点的数目较少时,我们可以采用 阅读全文
posted @ 2022-05-08 12:19 林学徒 阅读(674) 评论(0) 推荐(1) 编辑
摘要: 今天想和大家分享一个问题的解决办法,这个问题是自己在项目开发的过程中遇到的。经过思考和对资料的查找,最终想出了该问题的解法,趁着周末有点时间就把它整理并分享出来。 在描述问题之前,需要先了解涉及到的名词概念,便于对后续内容的阅读。 名称解释 sku(仓储相关概念):Stock Keeping Uni 阅读全文
posted @ 2020-11-22 17:22 林学徒 阅读(402) 评论(2) 推荐(0) 编辑
摘要: 通过分析JDK1.7和1.8两个不同版本的源码,讲解了ConcurrentHashMap中节点数目并发统计的底层实现原理 阅读全文
posted @ 2020-04-15 17:17 林学徒 阅读(1183) 评论(0) 推荐(0) 编辑
摘要: 前言: 本题来自leetcode第184场周赛的第二小题。以前参加过周赛,觉得很有趣。苦于最近一段时间比较忙就没坚持参加了(实际上是借口来着....),由于昨晚思考一些事情,导致睡不着,所以起得有点早,就参加了本场周赛,然后就碰到了这道题。 这题本身并不难,但是在比赛结束后,参看了别人的题解。基本都 阅读全文
posted @ 2020-04-12 21:34 林学徒 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 缓存的作用在于提高程序的 响应速度 ,一般用于程序存储运算所需数据或程序运算后的结果,以便再次访问或运算相同的程序(数据同样相同)时,能够得到快速的响应(适用于 读多写少 的场景)。在现代计算机体系结构中,根据多级存储体系的思想,为解决cpu运算速度与主存读取数据之间的速度不匹配问题,在cpu与主存 阅读全文
posted @ 2020-04-01 15:15 林学徒 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 本题解从统计数字出现次数的解题方式开始讲起,再推导出逐位统计出现次数的解题方式,最终得出状态机解题方法,期望以循序渐进的方式得出最终代码的思想。 阅读全文
posted @ 2020-03-27 23:51 林学徒 阅读(2261) 评论(4) 推荐(1) 编辑
摘要: 对于缓存和数据库双写,其存在着数据一致性的问题。对于数据一致性要求较高的业务场景,我们通常会选择使用分布式事务(2pc、paxos等)来保证缓存与数据库之间的数据强一致性,但分布式事务的复杂性与对资源的占用问题,使得该处理方式会造成系统性能的降低。对于数据一致性要求没那么高的业务场景,选择分布式事务 阅读全文
posted @ 2019-12-30 00:05 林学徒 阅读(760) 评论(0) 推荐(1) 编辑
摘要:   有限状态自动机是一种特殊的状态机。它表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。有限状态自动机分为 两种 ,一种是 确定有限状态自动机(DFA) ,一种是 非确定有限状态自动机(NFA) 。需要知道的是,对于每一种NFA都可转换为同样识别能力的DFA。 &e 阅读全文
posted @ 2018-06-11 23:02 林学徒 阅读(1034) 评论(0) 推荐(0) 编辑
摘要: 堆树的相关知识点 阅读全文
posted @ 2018-06-11 09:40 林学徒 阅读(933) 评论(0) 推荐(0) 编辑