LeetCode 88 合併倆有序陣列

2021-09-29 12:17:44 字數 658 閱讀 2990

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

相當於已經假設nums1d的空間是m+n個了,nums1後面有n個零。

public

void

merge

(int

nums1,

int m,

int[

] nums2,

int n)

else

}while

(p2>=0)

}

設定三個指標,分別指向倆個陣列最後的那個數字,還要乙個指向作為新陣列儲存空間最後那個位址

倆個陣列最後數字進行比較,大的放入最後那個位址,然後往前繼續比較,一直讓nums2的元素放入nums1來,如果最後nums2還有元素,則是都比nums1都小的,放入nums1的最前面。

LeetCode88 合併有序陣列

1.這道題為簡單題目,但是還有需要好好思考的 2.首先不能使用額外陣列合併,不然就沒得後文了 3.nums1後面有0填充,且填充數量正好是n,整個陣列大小即m n能夠容納合併後的資料 4.既然要在原來的陣列上操作,有沒有可能能夠避免移動資料 降低時間複雜度?使用交換方式 從後往前思考,類似於字串空格...

leetcode 88 合併兩個有序數

給定兩個有序整數陣列 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 我覺得這道題有點問題。假設 nums1 有足夠的空間...

LeetCode 88 合併兩個有序陣列

給定兩個有序整數陣列 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 解題思路 使用二分查詢演算法直接插入,極其簡潔,展示...