阿里最后一道笔试题

题目:淘宝在全国有很多货物存储仓库,相当于一个环形的链表,每个节点代表一个存货点,现在是每一个存货点存放的货物是不一样的,从而导致了不平衡,要求你给出一个高效算法,用于调节各个存货点的货物保持平衡,限制条件是只能在相邻的点之间传输货物 。

求解:

这不就是一个负载均衡的问题嘛,关键就是如何选取一个好的负载均衡的算法来实现这个需求。

数据结构:双向链表

策略:头结点记录所有的存货点的存货量,每隔一周,从头结点出发,单向遍历所有节点,更新头结点的记录所有存货点的存货量的数据。

  每一次存货,先看看头结点的记录,往存货量最少的节点上存货。

  每一周的更新,不仅仅要更新头结点的记录,同时进行存货点之间的存货平衡调整。

 

原文地址:https://www.cnblogs.com/GODYCA/p/3064691.html