博客主页:🏆李歘歘的博客 🏆
🌺每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点,以及职场小菜鸡的生活。🌺
💗点关注不迷路,总有一些📖知识点📖是你想要的💗
⛽️今天的内容是 Leetcode 88. 合并两个有序数组 ⛽️💻💻💻
88. 合并两个有序数组
给你两个有序整数数组 nums1
和 nums2
,请你将 nums2
合并到 nums1
中,使 nums1
成为一个有序数组。
初始化 nums1
和 nums2
的元素数量分别为 m
和 n
。你可以假设 nums1
有足够的空间(空间大小等于 m + n
)来保存 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]
提示:文章来源:https://www.toymoban.com/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
从后面空出的位置,往前排序 文章来源地址https://www.toymoban.com/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]
到了这里,关于88. 合并两个有序数组、Leetcode的Python实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!