給定兩個排序後的陣列 a 和 b,其中 a 的末端有足夠的緩衝空間容納 b。 編寫乙個方法,將 b 合併入 a 並排序。
初始化 a 和 b 的元素數量分別為 m 和 n。
示例:輸入:
a = [1,2,3,0,0,0], m = 3
b = [2,5,6], n = 3
輸出: [1,2,2,3,5,6]
直接把b陣列放在a陣列的緩衝空間,然後再使用sort排序
class
solution
sort
(a.begin()
,a.end()
);}}
;
使用兩個指標,乙個過渡陣列。
方法1沒有利用陣列 a 與 b 已經被排序的性質。為了利用這一性質,我們可以使用雙指標方法。這一方法將兩個陣列看作佇列,每次從兩個陣列頭部取出比較小的數字放到過渡陣列中,最後放回a陣列中。
class
solution
for(
int i =
0; i != m + n;
++i)
a[i]
= sorted[i];}
};1001
-he-bing-pai-xu-de-shu-zu-by-leetc/
陣列 面試題 10 01 合併排序的陣列
夢想進大廠的乙隻程式猿 期望畢業前力扣刷夠400題 正在複習資料結構和演算法 第乙個方法,借用o m 的空間,將a陣列的數字轉移到新開闢的空間中,然後依次的比較,方放入a陣列中 第二個方法,我們可以想想可以不借用空間的方法來解決這個問題,我們可以看到,兩個陣列的數字都是排序 公升序 好的,我們可以從...
面試題 排序鍊錶的合併
舉例 兩個鍊錶的情況可能有以下幾種,一是其中乙個鍊錶為空,二是兩個鍊錶都為空,三是兩個鍊錶都不為空。如果是兩個鍊錶都為空的話,那直接就將返回。下面針對存在不空鍊錶的情況做出分析。1,如果是其中乙個鍊錶為空的話,直接返回另一鍊錶的頭結點就行了。2,如果是兩個鍊錶都不為空的話,這個情況就比前兩種情況複雜...
合併排序的陣列
給定兩個排序後的陣列 a 和 b,其中 a 的末端有足夠的緩衝空間容納 b。編寫乙個方法,將 b 合併入 a 並排序。初始化 a 和 b 的元素數量分別為 m 和 n。class solution def merge self,a list int m int,b list int n int no...