gpt4 book ai didi

java - 将数量添加到数组中的多个索引(java)

转载 作者:行者123 更新时间:2023-12-01 14:40:49 26 4
gpt4 key购买 nike

所以我的问题是我有一台自动售货机。自动售货机有多个槽位,每个槽位有最大元素数量。

如果我使用产品名称和数量运行补货方法,我需要将数量添加到所提供的产品中。我有一个字符串数组和一个库存数组,其索引是槽号。

问题是,如果我在列表中有两次相同的命名产品,则该产品的第一个索引将达到最大值,但该产品的第二个实例始终比我需要的值少 1。

例如。我在插槽 0 和 1 处有糖果,最多 10 个。运行 restock(candies, 8) 然后 restock(candies, 5) 应该在槽 0 中提供 10,在槽 2 中提供 3。但是我得到 10 和 2。

public void restockProduct(String product, int quantity) {
int index = -1;
// If there is nothing to add, quit
if (quantity == 0) {
return;
}
for (int i = 0; i < products.length; i++) {
//Find location of product
if (products[i].equals(product)) {
index = i;
if(stock[index] <= max)
break;
}
}
if(index >=0){
stock[index]++;
restockProduct(product, quantity-1);
}

谢谢

最佳答案

使用此代码和 max 10,您将在第一场比赛中获得 11 分,在第二场比赛中获得 2 分,因为这一行:

if(stock[index] <= max)

如果插槽已满,等于 max,那么您仍会选择它以便稍后递增。严格尝试小于。另外,为了清楚起见,请结合两个 if 条件。仅当产品名称匹配未满时,您才需要选择该插槽。

if (products[i].equals(product) && stock[i] < max) {
index = i;
break;
}

您还必须处理没有插槽同时满足这两个条件的情况。

关于java - 将数量添加到数组中的多个索引(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15981434/

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