LeetCode 第88題 合併兩個有序陣列

2022-09-02 11:54:08 字數 929 閱讀 3817

給定兩個有序整數陣列 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]

思路:

o(n+m)

與合併鍊錶差不多.不過合併陣列讓我想到了歸併排序的歸併步驟.

正序掃瞄的話,如果不開闢乙個新的臨時陣列,插入時效率會很低,所以必須開闢乙個新的臨時陣列.掃瞄完再copy回nums1. 中間花費的時間很多.

倒序掃瞄的話,不需要開闢新的陣列,雖然步驟一樣,但省去了很多操作,效率高.

1

class

solution88

13if (currnums1 >=m)

17 } else21}

2223 system.arraycopy(temparray, 0, nums1, 0, nums1.length);

24for (int i = 0; i < nums1.length; i++) 27}

2829

//倒序

30public

void merge_2(int nums1, int m, int nums2, int

n) 39

40while (currnums1 >= 0)

4344

while (currnums2 >= 0)

4748}49

50 }

LeetCode第88題 合併兩個有序陣列

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

LeetCode 題 88 合併兩個有序陣列

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

LeetCode刷題之路 88 合併兩個有序陣列

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