gpt4 book ai didi

java - 比较两个数组的共同项并返回另一个包含共同项的数组

转载 作者:行者123 更新时间:2023-11-30 07:51:19 24 4
gpt4 key购买 nike

所以问题是我有两个数组,必须检查它们是否有共同项。通常的东西,非常简单。但对我来说棘手的是我必须返回另一个数组,其中包含已发现的共同元素.我不能不使用任何集合。提前致谢。到目前为止,这是我的代码!

public class checkArrayItems {
static int[] array1 = { 4, 5, 6, 7, 8 };
static int[] array2 = { 1, 2, 3, 4, 5 };

public static void main(String[] args) {
checkArrayItems obj = new checkArrayItems();
System.out.println(obj.checkArr(array1, array2));

}

int[] checkArr(int[] arr1, int[] arr2) {
int[] arr = new int[array1.length];
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr2.length; j++) {
if (arr1[i] == arr2[j]) {
arr[i] = arr1[i];
}

}
}
return arr;

}

}

最佳答案

如果有人想知道@user3438137 提到的“追逐”算法是怎样的:

int[] sorted1 = Arrays.copyOf(array1, array1.length);
Arrays.sort(sorted1);
int[] sorted2 = Arrays.copyOf(array2, array2.length);
Arrays.sort(sorted2);
int[] common = new int[Math.min(sorted1.length, sorted2.length)];
int numCommonElements = 0, firstIndex = 0; secondIndex = 0;
while (firstIndex < sorted1.length && secondIndex < sorted2.length) {
if (sorted1[firstIndex] < sorted2[secondIndex]) firstIndex++;
else if (sorted1[firstIndex] == sorted2[secondIndex]) {
common[numCommonElements] = sorted1[firstIndex];
numCommonElements++;
firstIndex++;
secondIndex++;
}
else secondIndex++;
}
// optionally trim the commonElements array to numCommonElements size

关于java - 比较两个数组的共同项并返回另一个包含共同项的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47328749/

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