博客主頁(yè):??李歘歘的博客 ??
??每天不定期分享一些包括但不限于計(jì)算機(jī)基礎(chǔ)、算法、后端開(kāi)發(fā)相關(guān)的知識(shí)點(diǎn),以及職場(chǎng)小菜雞的生活。??
??點(diǎn)關(guān)注不迷路,總有一些??知識(shí)點(diǎn)??是你想要的??
??今天的內(nèi)容是 ? ? Leetcode? 88. 合并兩個(gè)有序數(shù)組? ?? ? ?????????
88. 合并兩個(gè)有序數(shù)組
給你兩個(gè)有序整數(shù)數(shù)組?nums1
和 nums2
,請(qǐng)你將 nums2
合并到?nums1
?中,使 nums1
成為一個(gè)有序數(shù)組。
初始化?nums1
和 nums2
的元素?cái)?shù)量分別為?m
和 n
。你可以假設(shè)?nums1
?有足夠的空間(空間大小等于?m + n
)來(lái)保存 nums2
中的元素。
示例 1:
輸入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 輸出:[1,2,2,3,5,6]
示例 2:
輸入:nums1 = [1], m = 1, nums2 = [], n = 0 輸出:[1]
提示:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-739708.html
0 <= m, n <= 200
1 <= m + n <= 200
nums1.length == m + n
nums2.length == n
-109 <= nums1[i], nums2[i] <= 109
從后面空出的位置,往前排序?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-739708.html
class Solution:
def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
"""
Do not return anything, modify nums1 in-place instead.
"""
"從后往前排序"
i, j, k = m - 1, n - 1, 1
while i >= 0 and j >= 0:
if nums1[i] > nums2[j]:
nums1[m + n - k] = nums1[i]
i -= 1
else:
nums1[m + n - k] = nums2[j]
j -= 1
k += 1
if j >= 0:
nums1[:j + 1] = nums2[:j + 1]
到了這里,關(guān)于88. 合并兩個(gè)有序數(shù)組、Leetcode的Python實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!