【競技プログラミング】「Merge Sorted Array」with Python | LeetCode #88

Python

こちらは「Merge Sorted Array」のPythonによる解答例となっております。この問題は、2つのソートされた整数配列が与えられたとき、2つ目の配列を最初の配列にマージし、結果をソートされた状態で返す問題です。

問題

2つの整数配列 nums1 と nums2 がソートされていると仮定します。nums1 には十分な空きがあり、nums2 の要素を格納するための空きがあります(nums1 と nums2 の合計要素数は m と n です)。nums2 の要素を nums1 にマージして、マージした結果をソートされた状態で返します。

  • 0 <= m, n <= 200
  • 1 <= m + n <= 200
  • nums1.length == m + n
  • nums2.length == n
  • 10^9 <= nums1[i], nums2[i] <= 10^9

解法

この問題は、2つの配列をマージするアルゴリズムが必要です。2つの配列がソートされているため、マージする際には2つの配列の要素を比較して小さい方から新しい配列に追加することができます。具体的なアルゴリズムは以下の通りです。

  1. nums1nums2 の末尾から比較し、大きい方を nums1 の末尾に格納します。
  2. nums1nums2 のどちらかが終了するまで、1を繰り返します。
  3. nums2 が終了した場合、nums1 の開始位置から終了位