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