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