亚麻Onsite

find celerity, largest k和link binary tree same level nodes

第二部分

milestone1

Input: ProductID, destination

Output: List, productinventoryshippingcost

SomeClass: Inventory List

实现的功能是:当输入一个product和destination, 找到所有含有这个product的inventory, 对每一个inventory(用什么数据结构存的?arraylist or hashmap),找到它到destination的cost list. 最后把所有歌WrapperClass放到一个list里面返回。

根据product找到inventory,根据destination在inventory里面找到运往这个地方的cost。 然后再把inventory和cost组合成一起。

是两个for loop解决的 就是判断一个我记着是product.fromRegion() == shippingcost.toRegion()

for-loop 找product 计算from somepoint to somepoint的cost, 不同方式的cost汇总起来

HashMap> 存inventory list. HashMap> 存shopping cost

Cost 也是一个class,指从这个invento ry发往destination的cost list, 每个发货方式一个cost

第一问return的那个type是个啥玩意儿啊 productShippingCost 这也是个单独的类吗? 是不是要new一个它的instance,然后传inventory和shippingcost进去搞个新的实例,然后加到return的那个list里

milestone2

输入:order list

输出:调货的方案,productId 从哪个inventory发货,怎么发货

满足更多的订单,但是我的implement同时也满足了使更少订单late 所以等于是两个要求都满足了

  1. 先写了一个comparator来排序shippingcost里面的shipdays
  2. 用pq存shippingcost minheap
  3. 同时建一个map存key是shippingcost和value是productinventoryshippingcost, 这样之后可以通过shippingcost来调出来productinventoryshippingcost,从而得到inventory的信息
  4. 按order里面的product的quantity从小到大排序。
  5. 每次决定要走到判断发不发货之前 先check pq里的东西 按照shipday的需要来从小到大发 这样可以减少late订单 也算是greedy

重点:考官会问,怎么选择从哪里发货?时间最短的仓库来发货。

order可以分开运。一个order要5个东西,可以3个从inv1 运送,2个从inv2 运送 一个仓库对应一个productID。一个region不会有多个仓库有一样的东西。不过这个可以作为一个卖点和主考官聊一聊(当然,你要准备好怎么说)

我感觉这里multi threading的用途是在实际的product中, 用户订单的请求肯定非常大,而且这个service也肯定部署在多个server上, 所以这里需要multi threading 来同时处理大量的请求。

还有预处理product ID, 也是可以把product ID进行分类,然后不同的服务器处理不同类别的product ID, 这样我们既可以根据product 的需求量来进行服务器的调整 也可以把非常popular的product 放到cache中,加快服务器的响应速度。

最优情况下,时间复杂度是O(n)。先heapify这个分好的list或heap,然后取topK。如果K非常小。整体就是linear。

先满足最大发货量,在这基础上,可以保证in-time的同时 min cost。 就是因为shippingCost 用2个heap去装。

一个非常好的建议。我是onsite的时候想到的。就是写base。然后所有要加的东西都写成function。然后能写完多少就多少。 这样既可以抛出结果,也不用担心写不完。

为什么要选满足最多用户? 满足用户的需求永远是第一位的。

先按quantity排序order, 然后选每个inventory里面时间最短的发货

milestone 3

满足订单最多的情况下,优化shipment cost。

改了comparator来比较shippingcost这个class里的cost

问题

一个order 是只有一种product吗? 如果不是,那么怎么排序order呢?

results matching ""

    No results matching ""