可以使用雙指針的方法來合并兩個有序數組。具體步驟如下:
創建一個新的數組,用于存放合并后的結果。
初始化三個指針,分別指向兩個數組的開頭和新數組的開頭。
比較兩個數組當前指針指向的元素,將較小的元素放入新數組,并將該數組的指針向后移動一位。
重復步驟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;
}
你可以調用這個方法并傳入兩個有序數組,它會返回一個合并后的有序數組。