【发布时间】:2020-04-13 23:02:06
【问题描述】:
我正在尝试用 Java 编写一个函数,该函数采用两个数组并将数组 1 中的索引值相加,其中值与数组 2 匹配,例如
- Array1 = {15, 6, 99, 12, 35}
- Array2 = {1, 12, 7, 99, 35}
- 匹配“Array1[index]”值 = 2 (99)、3 (12)、4 (35)
- 所以,返回 9 (2+3+4)
我建议使用以下方法:
public int sumIndex(int[] array1, int[] array2) {
int total = 0;
for (int i=0; i < array1.length; i++) {
for (int j = 0; j < array2.length; j++) {
if (array1[i] == array2[j]) {
total = total + i;
}
}
}
}
但如果 Array2 中有不匹配的值,我也想返回 -1。因此,在上述情况下,1 和 7 不在 Array1 中,因此总数会减少 -2(每个缺失值都为 -1)。
如果我添加一个“else”语句
else {
total = total - 1;
}
或'else if'语句
else if (array1[i] != array2[j]) {
total = total - 1;
}
每次在 i 和 j 循环中存在 array1[index] 与 array2[index] 不匹配的值时,我都会从总数中删除 -1。我试图只为 array2 中与 array1 中的值不匹配的值返回 -1。
我将如何编写以便仅在 array2 中的值不是 array1 的元素时才返回 total-1?
谢谢
【问题讨论】:
-
您好,感谢您的回复。我在发布包含代码时遇到问题,我一直收到错误消息,要求使用 Ctrl+K 格式化代码。使用 Ctrl+K 无法解决问题并阻止我发布,因此我将代码添加为图像。
-
我已经重新输入了代码部分并且修改已被接受。如果您还有其他问题或 cmets,请告诉我。谢谢
-
Array 1 或 Array 2 中是否有重复值?例如 Array 1 中是否可以有两个元素的值为 15 ?与
{15, 6, 99, 12, 15}一样,使用stream API 的解决方案是否可以接受? -
可以允许重复值。不允许进口。不必使用循环,但这就是我试图解决它的方法。
-
我建议您edit您的问题并添加一个具有重复值的数组的示例,以及您对此类数组的预期结果。