题目链接:https://leetcode-cn.com/problems/merge-sorted-array/
难度:简单
描述:
给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。
请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。
注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m + n,其中前m个元素表示应合并的元素,后n个元素为0,应忽略。nums2的长度为n 。
提示:
m,n范围:[0, 200]m + n范围:[1, 200]
题解
class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:i, j, k = m - 1, n - 1, m + n - 1while i >= 0 and j >= 0:if nums1[i] > nums2[j]:nums1[k] = nums1[i]i -= 1else:nums1[k] = nums2[j]j -= 1k -= 1# 若 j < 0而i >= 0说明nums1前面已经有序,不用填充while j >= 0:nums1[k] = nums2[j]j -= 1k -= 1
