【发布时间】:2017-07-04 13:57:45
【问题描述】:
** 该数据是 3 个商店的 20 个订单的样本数据。尝试编写一个算法来根据规则确定哪个商店将满足哪个订单 **
如果有超过 1 个商店符合订单条件,则累计满足订单数量最少的商店将满足当前订单。 例如,如果 S1、S2 和 S3 在订单 #3 之前已经满足了 100、150、75 个单位的订单,并且 S1 和 S2 有资格获得订单 #4,那么 S1 将满足订单 #4
OrderNum|OrderQty|StoresEligible
------- |--------|--------------
1|12|S3
2|10|S1
3|19|S1,S2
4|7|S1,S2
5|14|S1,S2,S3
6|19|S2
7|5|S1,S2
8|17|S2
9|13|S3
10|5|S1
实际上,美国有 2,000 家商店和 100 万个订单
【问题讨论】:
-
你试过什么?什么不工作?
-
我不知道如何处理这个问题。我首先获取每行的每个商店的计数并将它们存储在单独的表中,然后通过 OrderNum 运行循环以识别第 (i+1) 行的数字较少的商店。这个逻辑听起来很有趣,但我发现它很难编码。
-
最好知道哪个商店实际交付了每个订单。因为如果你没有这个变量,你将不得不在每个新订单上迭代地重新计算整个历史......
-
是的,这正是我想要计算的。哪个商店要送货。对于订单 1 S3 是显而易见的选择,对于 2 S1 是选择。但是对于 3,S1 和 S2 都可以交付,但 S2 应该交付,因为 S2 交付的数量少于 S1,依此类推。所以我最终试图提出一个列,当有多个选项时,只有实际交付订单的商店
-
你能解释一下选择标准,这样更容易理解吗?