当前位置: 首页 > 知识库问答 >
问题:

带着购物清单逛超市,以最快的方式买到所有商品?

许波涛
2023-03-14

偶尔,我妻子带着购物清单送我去一家真正的超市(她给我写一张纸,或者给我发短信)。

  1. 我通过的超级(n)中的任何项:检查我的列表(m)中是否有这样的项,将给我一个O(n*m)共谋,这不是那么有效。
  2. “划分”商店的行(p):站在每一行的开头,我可以阅读标志或查看我应该在那里找到哪种类型的商品,而不是迭代我的列表,试图记住列表中我应该在那一行找到的所有商品。而不是走那一行并将那些项目添加到我的购物车,应该给我O(P*M)共谋。但这种情况从未真正发生过:我想在那一行中找到的列表中的四个项目中,我记不得超过三个,即使记了,我也经常忘记一个项目,不得不再次使用这个算法(假设Q次),结果是:O(Q*P*M).

我想补充几点意见:

  1. 例如,当到蔬菜区时,我发现自己在那个区翻了很多遍,因为我的妻子是一个很棒的厨师,并且在列表中添加了各种蔬菜(v)。当然,我不可能记住所有的蔬菜,更不可能在市场上的每一种蔬菜旁边停下来(或者我应该停下来吗?),看看我的清单上有没有这些蔬菜。
  2. 划掉我放在购物车中的每一个项目(或者用我还没有的所有项目创建一个新的列表)对我来说非常耗费时间,所以每次我尝试查找是否还有项目要添加到购物车中时,我宁愿遍历整个列表。
  3. 另一种情况是你在家庭度假前上车的第二次。你记得你忘了拿这个那个,然后跑回你的房子,拿了一些这些东西,忘了其他的然后再回去。这是一个类似的案例吗?

共有1个答案

危晨
2023-03-14

查阅这里的重排时间,我最初的想法是投入时间来映射你通常的项目将是无用的。(他们经常布置过道)。

对任何在这条道路上走下去的想法-不管用...

 类似资料:
  • 我有一个清单,上面有我想买的n个项目。(每项不同) 我的解决方案1我使用暴力DFS和记忆。这给出了最优解,但具有昂贵的复杂性(O(N!))不符合我的要求。(k和n有时可达300) 我的解决方案2我使用了一个贪婪的解决方案,在这个解决方案中,我会访问在我的清单上提供最大数量商品的商店。购买项目,并从列表中删除所有这些项目。我重复这个,除非我的购物清单不是空的。(所需物品均不买) 虽然解决方案2运行得

  • 下载(购买)商品 若要使用此机能,可能需先更新系统软件。 进入(PlayStation®Store),可下载(购买)PSP™专用游戏、游戏的追加道具、影像内容等商品。但在(PlayStation®Store)下载(购买)商品前,需先新建PlayStation®Network的账户。 已下载(购买)的商品会保存至以下其中一个位置: - Memory Stick™ - 主机内存   1. 进入主选单的

  • 服务商品的购买 服务商品的购买 更新时间:2018-03-14 17:47:17 从服务商品的详情页开始,选择合适的套餐版本,可以看到对应套餐配额,配额即为该规格下支持调用服务API的次数。Link Develop平台的服务产品,“购买时长”固定为“单次”,购买的套餐个数只能为1个。点击“立即购买”,进入下方的确认订单页。 确认订单页会根据所选规格自动计算价格。核对订单信息无误,点击“去支付”。

  • 硬件商品的购买 硬件商品的购买 更新时间:2018-03-14 17:46:36 从硬件商品的详情页开始,选择合适的规格及数量,页面会根据商品后台设置的计价规则自动计算价格。Link Develop平台的硬件产品,“购买时长”固定为“单次”,购买的套餐个数只能为1个。点击“立即购买”,进入下方的确认订单页。 确认订单页会根据所选规格自动计算价格,硬件的物流地址可以通过“添加订单备注”来标注。核对订

  • Web插件商品的购买 Web插件商品的购买 更新时间:2018-03-14 17:48:16 从Web插件商品的详情页开始,选择合适的套餐版本,可以看到对应套餐配额,配额即为该规格下支持应用集成该插件的次数。Link Develop平台的Web插件产品,“购买时长”固定为“单次”,购买的套餐个数只能为1个。点击“立即购买”,进入下方的确认订单页。 确认订单页会根据所选规格自动计算价格。核对订单信息

  • 查看已购买的商品 查看已购买的商品 更新时间:2018-02-01 21:18:00 要查看已购买的云市场商品,在“IoT”市场页右上方,点击“已购买”,即可进入。 已购买页,可以支持按照分类筛选购买的商品,并且显示计量的方式,以及已经分配到项目的用量配额。 对于插件商品(包括移动插件和Web插件),如果插件依赖了收费服务,会在“依赖服务”这里展开显示依赖服务的购买详情页和购买状态(已购买/未购买