raft选举流程2022年10月28日| 技术介绍图解 Raft (thesecretlivesofdata.com) 算法目的:实现了分布式节点的数据一致性 节点有三个状态:follower,candidate,leader leader election 初始阶段所有节点处于follower状态 follower状态下节点存在一个election timeout(150ms—300ms之间的随机数,随机降低了多个节点同时……阅读全文
etcd client v3 连接流程2022年10月28日| 问题分析etcd client v3 连接流程 首先需要了解grpc框架的一些概念,这边引用网上的一张图 Resolver 提供一个用户自定义的解析、修改地址的方法,使得用户可以自己去实现地址解析的逻辑、做服务发现、地址更新等等功能。 将Endpoints里的ETCD服务器地址(127.0.0.1:2379这种格式)做一次转换传给g……阅读全文
单调栈2022年10月13日| 算法笔记由于数据在栈内是单调递增或单调递减的,单调栈适合用来找出数组中第一个大于或小于某个元素的场景。元素出栈后,再根据题意对出栈元素进行处理,更新数据至result。 标准模板 第一个for循环内循环输入数组, 第二个for循环维持栈内单调特性,不满足单调的元素依次出栈 第一个for循环内对元……阅读全文
拓扑排序(选课)2022年10月12日| 算法笔记207. 课程表 - 力扣(LeetCode) 思路 课程之间的依赖关系可以用图来表示 顶点:课程 边:有向的边,起点是前置课程,终点是后置课程 这种图叫做AOV(Activity On Vertex)网络,字面意思就是边代表了节点之间的活动的先后关系。 按照题意,这个图是无环的(课程不能循环依赖),也就是D……阅读全文
优势洗牌(田忌赛马)2022年10月8日| 算法笔记870. 优势洗牌 - 力扣(LeetCode) 思路 将nums1(自己的马)进行升序排序,得到下等马->上等马的序列 贪心策略 若某个位置上自己的马比对手的马强,由于已经排过序了,已经是最下等的马了,因此使用这匹马 若某个位置上自己的马比对手的马弱,将该下等马放到最后的位置(对手的上等马的位……阅读全文
数位dp1年1月1日| 算法笔记题目特征 要求统计满足一定条件的数的数量(即,最终目的为计数,若要结果则只能回溯爆搜得到); 这些条件经过转化后可以使用「数位」的思想去理解和判断; 输入会提供一个数字区间(有时也只提供上界)来作为统计的限制; 上界很大(比如 10^{18}),暴力枚举验证会超时。 思路 从高到低枚举每一位,……阅读全文