領扣 合併兩個有序陣列 Python實現

2021-09-08 08:30:54 字數 1608 閱讀 4644

給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。

說明:初始化 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]

'''

給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。

說明:初始化 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, m, nums2, n):

""":type nums1: list[int]

:type m: int

:type nums2: list[int]

:type n: int

:rtype: void do not return anything, modify nums1 in-place instead.

"""# for x in nums2:

# i = m - 1

# while i > -1:

# if nums1[i] > x:

# nums1[i + 1] = nums1[i]

# i -= 1

# else:

# nums1[i + 1] = x

# break

# if i == -1:

# nums1[0] = x

# m += 1

i = m - 1 #i=2

j = n - 1 #j=2

while j >= 0:

while i >= 0 and nums1[i] > nums2[j]:

nums1[i + j + 1] = nums1[i] #把大的數放到nums1的最後一位,倒著放入

i -= 1

nums1[i + j + 1] = nums2[j]

j -= 1

return nums1

object=solution()

nums1=[1,2,3,0,0,0]

m=3nums2=[2,5,6,0]

n=3result=object.merge(nums1,m,nums2,n)

print(result)

github原始碼:

合併兩個有序陣列

例如 陣列a1 陣列a2 則合併為a3 思路 依次掃瞄a1和a2的元素 比較當前元素的值,將較小的元素賦給a3,直到乙個陣列掃瞄完畢,然後將另乙個陣列的剩餘元素賦給a3即可。陣列a3的容量需要容納a1和a2兩個陣列和長度和。實現 include include void merge int a1,i...

合併兩個有序陣列

給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。說明 示例 輸入 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 s...

合併兩個有序陣列

題目描述 給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。說明 初始化 nums1 和 nums2 的元素數量分別為 m 和 n。你可以假設 nums1 有足夠的空間 空間大小大於或等於 m n 來儲存 nums2 中的元素...