可以使用双指针的方法来合并两个有序数组。具体步骤如下:
-
创建一个新的数组,用于存放合并后的结果。
-
初始化三个指针,分别指向两个数组的开头和新数组的开头。
-
比较两个数组当前指针指向的元素,将较小的元素放入新数组,并将该数组的指针向后移动一位。
-
重复步骤3,直到其中一个数组的所有元素都被放入新数组。
-
将另一个数组中剩余的元素依次放入新数组。
-
返回合并后的新数组。
下面是一个示例代码:
public static int[] mergeArrays(int[] arr1, int[] arr2) { int[] merged = new int[arr1.length + arr2.length]; int i = 0, j = 0, k = 0; while (i < arr1.length && j < arr2.length) { if (arr1[i] < arr2[j]) { merged[k++] = arr1[i++]; } else { merged[k++] = arr2[j++]; } } while (i < arr1.length) { merged[k++] = arr1[i++]; } while (j < arr2.length) { merged[k++] = arr2[j++]; } return merged; }
你可以调用这个方法并传入两个有序数组,它会返回一个合并后的有序数组。