64 合併排序陣列

2022-02-14 20:37:15 字數 1355 閱讀 4944

中文english

合併兩個排序的整數陣列a和b變成乙個新的陣列。

樣例 1:

輸入:[1, 2, 3]  3  [4,5]  2

輸出:[1,2,3,4,5]

解釋:經過合併新的陣列為[1,2,3,4,5]

樣例 2:

輸入:[1,2,5] 3 [3,4] 2

輸出:[1,2,3,4,5]

解釋:經過合併新的陣列為[1,2,3,4,5]

你可以假設a具有足夠的空間(a陣列的大小大於或等於m+n)去新增b中的元素。

輸入測試資料 (每行乙個引數)如何理解測試資料?

class

solution:

""" @param: a: sorted integer array a which has m elements, but size of a is m+n

@param: m: an integer

@param: b: sorted integer array b which has n elements

@param: n: an integer

@return: nothing

"""def mergesortedarray(self, a, m, b, n):

# write your code here

#不用sort()解法

#初始化

poiona, poionb = m - 1, n - 1

index = m + n - 1

#反向每次取最大

#當兩個陣列可以相互比較最後乙個值的大小的時候

while poiona != -1 and poionb != -1

:

if (a[poiona] >b[poionb]):

a[index] =a[poiona]

poiona -= 1

else

: a[index] =b[poionb]

poionb -= 1

index -= 1

#最後剩下的直接加進來

while poiona != -1

: a[index] =a[poiona]

index -= 1

poiona -= 1

while poionb != -1

: a[index] =b[poionb]

index -= 1

poionb -= 1

return

a

64 合併排序陣列2

容易 合併排序陣列 ii 檢視執行結果 32 通過 合併兩個排序的整數陣列a和b變成乙個新的陣列。您在真實的面試中是否遇到過這個題?yes 樣例給出a 1,2,3,empty,empty b 4,5 合併之後a將變成 1,2,3,4,5 注意你可以假設a具有足夠的空間 a陣列的大小大於或等於m n ...

合併排序陣列

合併兩個排序的整數陣列a和b變成乙個新的陣列。樣例給出a 1,2,3,4 b 2,4,5,6 返回 1,2,2,3,4,4,5,6 挑戰 你能否優化你的演算法,如果其中乙個陣列很大而另乙個陣列很小?class solution param a and b sorted integer array a...

合併排序陣列

題目要求 合併兩個排序好的陣列 2.1 version one 完全採用c 內建函式,不用考慮任何演算法,執行通過 vector mergesortedarray vector a,vector b 2.2 version two 分別使用兩個迭代器指向待排序的陣列,然後依次比較大小.直到出現有乙個...