Michael's Blog

Software Engineer

Display Page list

实现分页显示。给了以下一些输入数据,要求将以下行分页显示,每页12行,其中每行已经按score排好序,分页显示的时候如果有相同host id的行,则将后面同host id的行移到下一页。 import java.io.; import java.util.; class Solution { public static void main(String[] args) { List input = new ArrayList<>(); input.add("1,28,300.1,SanFrancisco"); input.add("4,5,209.1,SanFrancisco"); input.add("20,7,208.1,SanFrancisco"); input.add(
2 min read
LintCode

Consistent Hashing II

Consistent Hashing II [http://lintcode.com/en/problem/consistent-hashing-ii/] 在 Consistent Hashing I 中我们介绍了一个比较简单的一致性哈希算法,这个简单的版本有两个缺陷: 1. 增加一台机器之后,数据全部从其中一台机器过来,这一台机器的读负载过大,对正常的服务会造成影响。 2. 当增加到3台机器的时候,每台服务器的负载量不均衡,为1:1:2。 为了解决这个问题,引入了 micro-shards 的概念,一个更好的算法是这样: 1. 将 360° 的区间分得更细。从 0~359 变为一个 0 ~ n-1 的区间,将这个区间首尾相接,连成一个圆。 2. 当加入一台新的机器的时候,随机选择在圆周中撒 k 个点,代表这台机器的
3 min read
DigitalOcean Referral Badge