給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 nums1 成為乙個有序陣列。
說明:初始化 nums1 和 nums2 的元素數量分別為 m 和 n 。
你可以假設 nums1 有足夠的空間(空間大小大於或等於 m + n)來儲存 nums2 中的元素。
示例:
輸入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3
輸出: [1,2,2,3,5,6]
class
solution
: def merge
(self, nums1: list[int]
, m: int, nums2: list[int]
, n: int)
-> none:
""" do not return anything, modify nums1 in
-place instead.
""" ''
'法一:三指標法'
'' i = m-
1 j = n-
1 k = m+n-
1while i>=
0 and j>=0:
if nums1[i]
>= nums2[j]
: nums1[k]
= nums1[i]
i -=
1 k -=
1else
: nums1[k]
= nums2[j]
j -=
1 k -=
1while j >=0:
nums1[k]
= nums2[j]
k -=
1 j -=1''
'法二:借助了乙個輔助陣列'
88 合併兩個有序陣列(簡單)
解題思路 使用 i 遍歷nums1,由於兩個陣列都為有序陣列所以可以直接比較第 i 個元素和nums2中的元素,若第i個元素比nums2中第乙個元素大的話,則將nums2中的的第乙個元素插入到第i個位置,將nums2 0 刪除 nums2陣列中始終儲存著沒有插入的元素 若第i個位置小於nums2中的...
88 簡單 合併兩個有序陣列
方法一 從後往前排,從陣列的尾端往前比較,放置元素,如果nums2中有數剩餘沒排,則將其copy到nums1中 o n void merge int nums1,int nums1size,int m,int nums2,int nums2size,int n else temp1 if 0 m 方...
合併兩個有序陣列
例如 陣列a1 陣列a2 則合併為a3 思路 依次掃瞄a1和a2的元素 比較當前元素的值,將較小的元素賦給a3,直到乙個陣列掃瞄完畢,然後將另乙個陣列的剩餘元素賦給a3即可。陣列a3的容量需要容納a1和a2兩個陣列和長度和。實現 include include void merge int a1,i...