LeetCode 88 合併兩個有序陣列

2021-09-16 23:11:18 字數 619 閱讀 2288

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

指標i = m - 1指向陣列s1的最後乙個數,指標j = n - 1指向陣列s2的最後乙個數,指標k = m + n - 1指向合併後的最後乙個數。所以用歸併的方法進行。比較s1[i]和s2[j]哪個大,然後把大的數存到k處,然後剛才指向大數的指標向左移動一步,k也向左移動一步,然後繼續,直到i或者j小於0退出迴圈。這時可能i大於0或者j大於0。如果i大於0,說明陣列s2中的數比較大,全部都已經歸併到s1中去了,所以直接結束了。但是如果j大於0,說明陣列s2中的數比較小,還有一部分沒有歸併到s1中去,此時s1中留下的位置都是給s2中剩下的數預備的,所以將剩下的數逐個存到s1中去即可,最後返回。

class solution 

};

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 解題思路 使用二分查詢演算法直接插入,極其簡潔,展示...

leetcode88 合併兩個有序陣列

def merge self,nums1,m,nums2,n 關鍵點是nums1原陣列的長度是m n,肯定要在nums1上操作效率高 如果正向比較的話移動次數很多,逆向的話不需要移動 注意m,n是以1開頭的 while m 0 and n 0 if nums1 m 1 nums2 n 1 如果num...