用JAVA写一段代码,合并有序数组并去重
时间: 2024-09-08 08:04:41 浏览: 61
在Java中,合并两个有序数组并去重可以通过双指针技术实现。以下是一个示例代码,它使用了两个指针分别遍历两个有序数组,并将它们合并到一个新数组中,同时去除重复元素。
```java
public class MergeSortedArray {
public static int[] mergeAndRemoveDuplicates(int[] nums1, int[] nums2) {
if (nums1 == null || nums1.length == 0) {
return nums2;
}
if (nums2 == null || nums2.length == 0) {
return nums1;
}
int i = 0, j = 0;
int[] merged = new int[nums1.length + nums2.length];
while (i < nums1.length && j < nums2.length) {
if (nums1[i] < nums2[j]) {
merged[i + j] = nums1[i];
i++;
} else if (nums1[i] > nums2[j]) {
merged[i + j] = nums2[j];
j++;
} else {
merged[i + j] = nums1[i];
i++;
j++;
}
}
while (i < nums1.length) {
merged[i + j] = nums1[i];
i++;
}
while (j < nums2.length) {
merged[i + j] = nums2[j];
j++;
}
return merged;
}
public static void main(String[] args) {
int[] nums1 = {1, 2, 3, 4, 5};
int[] nums2 = {3, 4, 5, 6, 7};
int[] mergedArray = mergeAndRemoveDuplicates(nums1, nums2);
for (int num : mergedArray) {
System.out.print(num + " ");
}
}
}
```
这段代码首先定义了一个`mergeAndRemoveDuplicates`方法,它接收两个整型数组`nums1`和`nums2`作为参数,然后通过比较两个数组的元素来合并它们,并在合并的同时去除重复的元素。最后,`main`方法中创建了两个示例数组并调用了`mergeAndRemoveDuplicates`方法,打印出合并去重后的结果。
阅读全文