程序地带

Leetcode88题——合并两个有序数组


题目描述 给你两个有序整数数组 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]


提示:


0 <= m, n <= 200 1 <= m + n <= 200 nums1.length == m + n nums2.length == n -109 <= nums1[i], nums2[i] <= 109


解题思路 分四种情况,第一种都为0,输出[];第二种m=0,将nums2赋给nums1;第三种n=0,nums1不变;第四种m,n都不为0,则将nums2中的数依次与nums1中数从前向后比对,然后依次插入(这里提前pop掉了0)


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.
"""
l2=len(nums2)
if m==0 and n==0:
nums1=[]
if m==0 and n!=0:
nums1=[]
for i in range(l2):
nums1.append(nums2[i])
if m!=0 and n!=0:
for i in range(l2):
nums1.pop()
for i in range(l2):
l1=len(nums1)
for j in range(l1):
if nums1[j]>nums2[i]:
nums1.insert(j,nums2[i])
break
if j==l1-1:
nums1.append(nums2[i])

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/merge-sorted-array 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43839163/article/details/112689125

随机推荐

VS2019配置PCL

PCL版本:PCL1.10.1参考文章:https://zhuanlan.zhihu.com/p/142955614?utm_source=wechat_sessi...

yyyyygq 阅读(238)

SQL练习题一(逐行累计)

此文转载自:https://blog.csdn.net/qq_47255712/article/details/112258604#commentBoxSQL练习题一(逐行累计)表tab...

Python测试和开发 阅读(241)

2021-01-08

返回主页1874首页联系订阅管理随笔-214文章-0评论-89容器编排系统K8s之PodAffinity前文我们了解了k8s上的NetworkPolicy资源的使用和工作逻辑,回顾请参考...

wubaoyu123 阅读(162)

接私活必备开源的SpringBoot项目

接私活必备开源的SpringBoot项目

点击上方蓝字关注我们#前言不得不佩服SpringBoot的生态如此强大,今天给大家推荐几款优秀的后台管理系统,小伙伴们再也不用从头到尾撸一个项目了。#SmartAdmin我...

Rookie小强 阅读(797)