這一個題目的要求是給定兩個已經排序好的陣列,兩個陣列分別是 m 和 n,其中第一個陣列比較長,這個比較長的陣列長度是 m + n ,其中前面 m 個數字是題目給定已經排序好的數字,後面 n 個數字是 0 ,題目要求把兩個陣列組合起來並且排序好後,將所有的數字放入到比較長的陣列。
從起始端到末端
第一個做法很直覺,直接複製比較長的陣列中的前 m 個元素,接著只要執行合併就好,透過一個指針去遍歷第一個陣列,並透過另外兩個指針去遍歷第二個比較短的陣列與複製過長度為 m 的陣列。並將比較小的數字慢慢放入最長的陣列中。時間複雜度為 \(O(m+n)\) ,需要額外的 \(O(m)\) 個空間來儲存複製的陣列。