1

我们有一个代表客户购物记录的数组。例如,它是一个这样的数组:

custA, item1,
custB, item1,
custA, item2,
custB, item3,
custC, item1,
custC, item3,
custD, item2,

该数组表示客户 A 购买了商品 1,客户 B 购买了商品 1,客户 A 购买了商品 2,客户 B 购买了商品 3,等等。对于给定的商品 X 和购物记录数组,编写代码找出还有什么(商品Y) 主要由购买商品 X 的客户购买。例如,在上面的示例中,如果 X 是商品 1,那么 Y 应该是商品 3。

4

1 回答 1

0

一种方法可以遍历二维数组并找到购买 item1 的人的列表(或映射以进行有效查找)。
然后通过在此循环中再次迭代数组来创建 itemName 和 purchaseCount 的映射,将条目放入映射中以供出现在 item1 买家列表中的人使用。
现在再次遍历地图并找到所需的项目。
对于 N*2 数组,这种方法需要 3N 次迭代,并且需要高达 3N 的空间(N 用于买家列表,N*2 用于项目计数图,加上地图会消耗额外的空间)

于 2012-10-10T05:21:29.907 回答