Thursday, October 16, 2014

Amazon2

Replace each element of an array with its greatest next integer in O(n).



题一:
有N个node,每个都不停的向外发送timestamps,具体发送哪些timestamp是每个node决定
的,从其他node来说是随机的.现在要收集这些node发送的所有timestamp.如果某个
timestamp被发现从超过99%的node上发送出来,记录下来.需要怎么做?这些timestamp很
多,是不能完全放进去内存里面的.如果node非常多,怎么scale?


题一:
有N个node,每个都不停的向外发送timestamps,具体发送哪些timestamp是每个node决定
的,从其他node来说是随机的.现在要收集这些node发送的所有timestamp.如果某个
timestamp被发现从超过99%的node上发送出来,记录下来.需要怎么做?这些timestamp很
多,是不能完全放进去内存里面的.如果node非常多,怎么scale?

Answer:  如果每个node不会发送相同的时间戳的话: hashmap <timestamp, 这个时间
戳收到的数量> 如果相同node会发送相同的时间戳:  hashmap <timestamp, 一个set
存储哪些node发送过这个时间戳> 然后应该有个数字代表99%的 node吧 如果hashmap的
value (对于第二种情况就是value的size) 超过了这个数字 就记录这个时间戳。

对于超多数据 根据时间戳进行hash 这样相同时间戳的数据会被分到同一台机器上 就
可以了吧












No comments:

Post a Comment