求两个相同容量整形数组有多少个相同元素java代码实现
时间: 2024-09-08 15:02:09 浏览: 49
在Java中,你可以使用双指针法(Two Pointers)来解决这个问题。这里是一个简单的例子:
```java
public class Main {
public static void main(String[] args) {
int[] array1 = {1, 2, 2, 3, 4, 4, 5};
int[] array2 = {2, 2, 3, 4, 4, 6};
int count = findCommonElements(array1, array2);
System.out.println("共有 " + count + " 个相同元素");
}
// 函数用于找到两个数组中有多少相同的元素
public static int findCommonElements(int[] arr1, int[] arr2) {
int i = 0, j = 0;
int count = 0;
while (i < arr1.length && j < arr2.length) {
if (arr1[i] == arr2[j]) {
count++;
i++; // 移动 arr1 的指针
j++; // 移动 arr2 的指针
} else if (arr1[i] < arr2[j]) {
i++;
} else {
j++;
}
}
return count;
}
}
```
在这个代码里,我们创建了两个长度相同的整型数组,然后遍历它们,如果当前元素相等则计数器加一并移动指针,如果不相等,则移动较大的那个数组的指针。最后返回的 `count` 就是两个数组中共有的相同元素数量。
阅读全文