Raft是一种共识(consensus)算法。解决分布式系统的一致性问题的算法之一。 学习Raft算法,收集几个不错的文章和网站: raft算法动画演示: http://thesecretlivesofdata.com/raft/ raft算法官方:https://raft.github.io/ 《Zookeeper:分布式系统入门到实战》https://www.youtube.com/watch?v=BhosKsE8up8 分布式系统有一 ...
阅读全文1)两数和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 来源:力扣(LeetCode) 链接 ...
阅读全文字符串搜索问题之前没有好好想,正常使用自带API或者正值表达式,或者第一反应就是常规的暴力搜索。其实这里面有很多很好玩的算法。Robin-Karp算法比较容易理解,而利用有限自动机进行匹配就开始晕了,最后的KMP算法代码不多,但是计算前缀的方法真是很神奇,静下心想了好久才开窍。神奇!神奇!很神奇。 本文讲一个很神奇的搜索字符串中以某一位开始的最长回文的算法。问题可以简化为从字符串首位开始的最长回文。 问题分析: public String getLonggestLeftPa ...
阅读全文有这样的一个数列:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ... 数字递增十分快,所以让我们想到 ...
阅读全文动态规划来解决一些最优解的问题,常常可以将暴力算法的指数级时间复杂度降到O(n2)和O(n3)。动态规划并不难,只要按四个步骤就能找出最优解。 刻画一个最优解的结构特征。 递归地定义最优解的值。 计算最优解的值,通常使用自底向上的方法。 利用计算出的信息构造一个最优解。 动态规划的两个要素:最优子结构和子问题重叠。 最优子结构:如果一个问题的最优解包含其子问题的最优解,我们就称此问题具有最优子结构性质。 子问题重叠:递归算法反复求解相同的子问题, ...
阅读全文