Python基础编程练习LeetCode——排序
Python基础编程练习LeetCode——排序
题目来源:LeetCode:88,147,148,912
88、合并有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
输入
[1,2,3,0,0,0]
3
[2,5,6]
3
输出
[1,2,2,3,5,6]
解题思路
解题思路:数组1从m个元素往前比较,数组2从后往前比较。当两者都没到头时,根据大小从m+n-1出往前更新数组1。循环结束,如果数组2没有到头,将数组2中剩余元素同位置赋给数组1即可。
完整代码
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.
"""
while m>0 and n>0:
if nums1[m-1]>nums2[n-1]:
nums1[n+m-1]=nums1[m-1]
m-=1
else:
nums1[n+m-1]=nums2[n-1]
n-=1
if n