算法
YummyKang2017
这个作者很懒,什么都没留下…
展开
-
一致性hash算法
假如有三台缓存服务器用来缓存图片,A,B,C,这个图片的缓存应该放到哪个服务器上呢,如果我们随便的放在某一台服务器上的话,查找的时候需要三台都遍历, 解决方法: 有图片test.jpg需要缓存到3台服务器上 上述方案的问题是:如果需要添加或者删除一台机器的时候,需要重新hash一下,大部分的数据需要迁移,这时会造成缓存高不可用 解决的方案是使用一致性hash算法转载 2017-12-19 16:32:07 · 174 阅读 · 1 评论 -
求链表是否存在环
这样子的链表:解决方案:1.散列表,遍历每个节点并把节点放到散列表中,如果有重复节点则表示有环2.floyed环判定算法,弄2个指针,一快一慢,往前遍历,如果有环,快的肯定会和慢的相遇 ...原创 2018-03-14 10:29:02 · 161 阅读 · 0 评论 -
求链表倒数第N个节点
要解决这个问题普通的算法是,求得链表的长度(通过遍历),再通过遍历找到第n-1个节点那么时间复杂度是O(n2) O(n)的解决方案 使用2个指针p,qp先移动n次(每次移动步数为1)此时q和p一起移动,当p到达链表尾部时,q所在的节点即是倒数第N个节点设链表总长m其实倒数第n个节点即是m-np移动到nq开始移动q移动的步数=m-n...原创 2018-03-14 10:29:53 · 628 阅读 · 1 评论