合併兩個有序陣列
阿新 • • 發佈:2020-09-17
題目描述
給出兩個有序的整數陣列 和 ,請將陣列 合併到陣列 中,變成一個有序的陣列
注意:
可以假設 陣列有足夠的空間存放 陣列的元素, 和 中初始的元素數目分別為 和
程式碼實現
public class Solution { public void merge(int A[], int m, int B[], int n) { //dp[i]代表的意思是:第i位置上的值為A與B相比的最小的值 int[] dp = new int[m+n];//臨時陣列 int i = 0;//A的下標初始值 int j = 0;//B的下標初始值 int index = 0;//dp的下標初始值 while(i<m && j< n){//不到邊界 dp[index++] = (A[i]<B[j])? A[i++] : B[j++]; //把最小的值放在dp[index]中,然後對應的下標++ } while(i < m){//A中剩餘的放到臨時陣列中 dp[index++] = A[i++]; } while(j < n){//B中的剩餘放到臨時陣列中 dp[index++] = B[j++]; } for(int k = 0; k < dp.length; k++){//將臨時陣列的東西放到題目要求的A陣列中 A[k] = dp[k]; } } }