Leetcode 88. 合并两个有序数组 Python实现

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。

说明:

初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。
你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。

示例:

输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3

输出: [1,2,2,3,5,6]

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

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.
        """
        nums1[:]=sorted(nums1[:m]+nums2)

开辟新空间暂存nums1非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.
        """
        temp= nums1[:m] 
        p1=0
        p2=0
        p=0
        while p1<m and p2<n:
            if temp[p1]<=nums2[p2]:
                nums1[p]=temp[p1]
                p+=1
                p1+=1
            else:
                nums1[p]=nums2[p2]
                p+=1
                p2+=1
        if p1<m:
            nums1[p1+n:]=temp[p1:]
        elif p2<n:
            nums1[m+p2:]=nums2[p2:]

从后往前

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.
        """
        left=m-1 # nums1左指针,指向最后一个非0元素
        right1=len(nums1)-1 # nums1右指针,指向最后一个元素
        right2=n-1 # nums2左指针,指向最后一个元素
        while left>=0 and right2>=0:
            if nums1[left]>=nums2[right2]:
                nums1[right1]=nums1[left]
                left-=1
                right2-=1
            else:
                nums1[right1]=nums2[right2]
                right2-=1
                right1-=1
       
        nums1[:right2+1]=nums2[:right2+1]
LeetCode 简单 数组 python3】88. 合并两个有序数组 想要看更加舒服的排版、更加准时的推送 关注公众号“不太灵光的程序员” 每日八点有干货推送,微信随时解答你的疑问 88. 合并两个有序数组 python3 简单 数组 给你两个有序整数数组 nums1 nums2,请你将 nums2 合并nums1 中,使 nums1 成为一个有序数组。 说明: 初始化 nums1 nums2 的元素数量分别为 m n 。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = . 阅读详情

相关推荐

Ventoy引导自定义菜单配置详解:手把手教你用ventoy_grub.cfg启动硬盘里的Manjaro

本文详细解析了Ventoy引导自定义菜单配置方法,重点介绍如何通过ventoy_grub.cfg文件启动硬盘中的Manjaro系统。从Ventoy与GRUB2的协作原理到具体配置步骤,包括分区布局设计、关键参数解析及常见问题解决方案,帮助用户实现多系统引导的灵活管理。

weixin_28738165的博客 251

力扣(leetcode)第88合并两个有序数组Python

输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。输入:nums1 = [0], m = 0, nums2 = [1], n = 1。输入:nums1 = [1], m = 1, nums2 = [], n = 0。解释:需要合并 [1,2,3] [2,5,6]。解释:需要合并数组是 [] [1]。输出:[1,2,2,3,5,6]

qq_58737789的博客 1160

使用 Python 获取实时港股行情数据

在本教程中,你将学习如何通过 Infoway API 获取港股实时行情数据,具体以腾讯控股(0700.HK)汇丰控股(0005.HK)为例,使用 Python 进行数据请求解析。

kk_stoper的博客 1497

【力扣】88.合并两个有序数组--Python实现

【题目描述】 给你两个有序整数数组 nums1 nums2,请你将 nums2 合并nums1 中,使 nums1 成为一个有序数组。 说明: 初始化 nums1 nums2 的元素数量分别为 m n 。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 输出:[1,2,2,3,5,6] 提示: -10^9 &

qq_36643449的博客 667

力扣88 合并两个数组并排序 python

这个比较简单,从网上搜索了sort函数的用法 代码实现 class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: """ Do not return anything, modify nums1 in-place instea...

lvjiwei001的博客 510

【力扣】[88] 合并两个有序数组 | 简单 | python

[88] 合并两个有序数组 easy python 1 题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 nums2,另有两个整数 m n ,分别表示 nums1 nums2 中的元素数目。 请你 合并 nums2nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2

qq_56349925的博客 237

python两个一维数组合并_每日一leetcode题(合并两个有序数组

给你两个有序整数数组 nums1 nums2,请你将 nums2 合并nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 nums2 的元素数量分别为 m n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 =[1,2,3,0,0,0], m = 3nu...

weixin_39763683的博客 1147

Leetcode 88.合并两个有序数组的解题思路以及C++、java、python实现

Leetcode 88.合并两个有序数组 题目描述: 给你两个有序整数数组nums1 nums2,请你将 nums2 合并nums1中,使 nums1 成为一个有序数组。 说明: 初始化nums1 nums2 的元素数量分别为m n 。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n ...

Thanours的博客 310

LeetCode 88. 合并两个有序数组(双指针详解 + Java Python 实现

这篇文章详细讲解了LeetCode88题"合并两个有序数组"的两种解法。第一种方法使用临时数组进行归并排序式合并,时间复杂度O(m+n),空间复杂度O(m+n)。第二种更优方法是利用双指针从后往前原地合并,时间复杂度O(m+n),空间复杂度O(1)。文章通过Java/Python代码示例、复杂度分析优缺点对比,重点推荐了第二种方法,强调其原地合并的特性是面试时应掌握的经典解法。两种方法都采用双指针技术,但后者更符合题目对空间效率的要求。

2603_95532426的博客 236

Leetcode 88. 合并两个有序数组 Python3实现(详细注释版本)

Leetcode 88. 合并两个有序数组 Python3 虽然是一道简单难度的题目,但是要想到这种方式还是不容易,看到官方的答案很赞,就加了很多注释自己的理解,方便日后复习,同时能帮助其他人就更好啦!如有错误,欢迎指正 Python代码: class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: """ Do not return

Println30的博客 243

88. 合并两个有序数组LeetcodePython实现

🌺每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点,以及职场小菜鸡的生活。⛽️今天的内容是 Leetcode 88. 合并两个有序数组 ⛽️💻💻💻。💗点关注不迷路,总有一些📖知识点📖是你想要的💗。有足够的空间(空间大小等于。从后面空出的位置,往前排序。给你两个有序整数数组

分享包括但不限于计算机基础知识、数据结构与算法、Golang技术栈。年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及! 493

leetcode 88. 合并两个有序数组(python3实现)

合并两个有序数组 给定两个有序整数数组 nums1 nums2,将 nums2 合并nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 nums2 的元素数量分别为 m n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nu...

算法探索之路 418

leetcodePython+Javascript实现-88.合并两个有序数组

88.合并两个有序数组 描述 给定两个有序整数数组 nums1 nums2,将 nums2 合并nums1 中,使得 num1 成为一个有序数组。 初始化 nums1 nums2 的元素数量分别为 m n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例 输入: nums1 = [1...

神不烦 1529

LeetCodePython 实现 88: 合并两个有序数组

给定两个有序整数数组 nums1 nums2,将 nums2 合并nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 nums2 的元素数量分别为 m n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,...

FesonX的博客 223

LeetCode88. 合并两个有序数组python

LeetCode88. 合并两个有序数组python) 定两个有序整数数组 nums1 nums2,将 nums2 合并nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 nums2 的元素数量分别为 m n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = ...

wk的博客 612

leetcode88题 题解 翻译 C语言版 Python

88. Merge Sorted Array Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: You may assume that nums1 has enough space (size that is greater or e

陈止风的博客 2111

leetcode-88 | 合并两个有序数组

title: leetcode-88 | 合并两个有序数组 date: 2019-4-23 13:42:04 comments: true categories: “leetcode” tags: - leetcode 简单难度 88. 合并两个有序数组(Merge Sorted Array) 给定两个有序整数数组 nums1 nums2,将 nums2 合并nums1 中,使得 num...

梦否 400

LeetCode 题目-88.合并两个有序数组/100.相同的树/101 .对称二叉树 (python实现)

作为要准备踏入码农行业的人来说,要准备校招,怎么能不去刷刷LeetCode呢? 88. 合并两个有序数组 题目要求: -给定两个有序整数数组 nums1 nums2,将 nums2 合并nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 nums2 的元素数量分别为 m n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保...

A_彬的博客 260

LeetCode面试150——88合并两个有序数组

Leetcode面试经典150题第88合并两个有序数组

Junmo12345的博客 1445

9.10 练手 88

Leetcode 88.Merge Sorted Array Given two sorted integer arraysnums1andnums2, mergenums2intonums1as one sorted array. Note: The number of elements initialized innums1andnums2aremandn...

cs学徒的周记 141

Python描述 LeetCode 88. 合并两个有序数组

Python描述 LeetCode 88. 合并两个有序数组   大家好,我叫亓官劼(qí guān jié ),在GitHub & CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在GitHub & CSDN中写博客,唯一博客更新的地址为:亓官劼的博客 ,近期将逐渐同步刷题相关记录到GitHub:[Algorithmic-learning-records] (https://github.com/qiguanjie/Algorithmic-learning-reco

一起加油 759
上一篇: #Leetcode 21,合并两个有序链表
下一篇: 归并排序Python实现
ChengSlime
博客等级 码龄9年 1粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值