gpt4 book ai didi

algorithm - 作业 : Algorithm to determine the two most popular items in a shopping cart

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:55 26 4
gpt4 key购买 nike

我正在尝试确定用户购物车中最受欢迎的两件商品。

每次用户向购物车添加或从购物车中删除商品时,都会调用函数 updatePopularity(Item item),该函数会传递一个引用已更新对象的参数。这是代码片段:

  private void updatePopularity(InventoryItem item)
{
InventoryItem tempItem;

if (mostPopular == null)
{
if (item.count > 0)
{
mostPopular = item;
mostPopularLabel.setText(MOST_POPULAR + " " + item.name);
}
}
else if (nextPopular == null)
{
if (mostPopular.name != item.name && item.count > 0)
{
nextPopular = item;
nextPopularLabel.setText(NEXT_POPULAR + " " + item.name);
}
}
else if (mostPopular.count < item.count)
{
tempItem = mostPopular;
mostPopular = item;
mostPopularLabel.setText(MOST_POPULAR + " " + item.name);

nextPopular = tempItem;
nextPopularLabel.setText(NEXT_POPULAR + " " + nextPopular.name);
}
else if (nextPopular.count < item.count)
{
nextPopular = item;
nextPopularLabel.setText(NEXT_POPULAR + " " + nextPopular.name);
}
else if (mostPopular.count == 0)
{
}
}

虽然我在逻辑上变得很笨拙,因为有太多可能的场景可以发挥作用。

最终结果应该是:

  • 在任何给定时刻,购物车中数量最多的两件商品应该显示为最受欢迎。
  • 如果第二受欢迎的最终数量更多,则这两个项目应该交换最受欢迎和第二受欢迎的位置。
  • 随着商品从购物车中移除,受欢迎程度也应更新。

最后,如果因为购物车更新而只有一件受欢迎的商品,我应该反射(reflect)这一点。

任何人都可以帮助我如何从逻辑上规划出各种可能性吗?

我目前正在上离散数学课,但我还不够尝试在纸上解决这个问题。我并不是要求为我写出代码,而只是一些关于如何通过逻辑工作而没有困惑的 if 语句的指导。

最佳答案

我最终使用的实现效率不高,但它有效...

每次将商品添加到购物车或从购物车中删除商品时,系统都会扫描库存,找出前两次出现的最受欢迎和第二受欢迎的商品。然后,将这些项目与目前最受欢迎和第二受欢迎的持有者进行比较。棘手的部分是逻辑,因为如果一个项目排在第一位,那么第一个的当前项目需要被推到第二个。但是,如果当前第二的项目被撞到第一,那么第一个并列第二的项目需要成为第二。我试图在纸上绘制出逻辑,但我只是没有那样做的技能或知识。我最终把自己弄糊涂了。 :)

关于algorithm - 作业 : Algorithm to determine the two most popular items in a shopping cart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com