题目:

给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组

注意:
1.保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n
2.不要返回合并的数组,将数组 B 的数据合并到 A 里面就好了
3. A 数组在[0,m-1]的范围也是有序的

示例1

输入:[4,5,6],3,[1,2,3],3
返回值:[1,2,3,4,5,6]
说明:
A数组为[4,5,6],B数组为[1,2,3],后台程序会预先将A扩容为[4,5,6,0,0,0],
B还是为[1,2,3],m=3,n=3,传入到函数merge里面

方法1:
定义三个指向,分别是A数组的最大元素(最后一个元素),B数组的最大元素(最后一个元素),扩容后A数组的最大元素(也是扩容后A数组的最后一个元素)
然后A、B数组依次比较元素大小,然后给扩容后数组赋值

def merge(A,m,B,n):A[m:m+n] = [0 for i in range(n)] # 直接扩展数组Ai,j = m-1,n-1p = m+n-1while i>=0 and j>=0:if A[i] >= B[j]:A[p] = A[i]i -= 1p -= 1else:A[p] = B[j]j -= 1p -= 1while i>=0:A[p] = A[i]i -= 1p -= 1while j>=0:A[p] = B[j]j -= 1p -= 1if __name__ == "__main__":A = [4,5,6]B = [1,2,3]merge(A,3,B,3)print(A)
"""
results:[1,2,3,4,5,6]
"""

方法二

def merge(A,m,B,n):A[m:m+n] = B # 直接扩展数组AA.sort()if __name__ == "__main__":A = [4,5,6]B = [1,2,3]merge(A,3,B,3)print(A)
"""
results:[1,2,3,4,5,6]
"""

合并两个有序数组(Python)相关推荐

  1. 合并两个有序数组Python解法

    给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目. 请你 合并 nums2 到 nums1 中,使合并 ...

  2. LeetCode--88.合并两个有序数组(插入法,排序法)

    合并两个有序数组(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 4. Python语言实现 1. 题目描述 难度:简单 2. 题目分析 这道题比较简单,实现方法有两种: 插入 ...

  3. 两个数组合并排序python_python算法题---合并两个有序数组

    leetcode-python-合并两个有序数组 今天第一次电话面试,有点紧张,所以自己感觉表现的不是很好,面试过程中面试官问到了两个算法题,都是leecode上面的题目,而且我都做过,但是当时一下子 ...

  4. LeetCode——合并两个有序数组

    LeetCode--合并两个有序数组 题目描述: 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nu ...

  5. 数组-合并两个有序数组(双指针,从后往前)

    题意: 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 ...

  6. LeetCode-双指针-88. 合并两个有序数组

    88. 合并两个有序数组 思路:归并排序,一长一短,肯定会有一个先放完,放完后把另一个拷贝过去即可. 为了避免覆盖所以从最后开始向前放最大的元素 class Solution {public:void ...

  7. LeetCode 88合并两个有序数组89格雷编码

    微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...

  8. 合并两个无序数组java_88. 合并两个有序数组

    88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2的 ...

  9. 合并两个有序数组(双/三指针)

    今天写作业,合并两个有序数组a和b,时间复杂度要求O(n),空间复杂度要求O(1). 很快想到创建第三个数组c,用双指针初始化指向a和b的头元素,每次选择较大者在c上尾插进去之后,再后移相对应a或者b ...

  10. 双指针:88. 合并两个有序数组

    题目链接 88. 合并两个有序数组 解题思路 一. 合并数组后排序,时间复杂度为O((n+m)log(n+m)) 代码: 快排详解 class Solution {public void merge( ...

最新文章

  1. 数据中心机房建设几个重要的国家标准
  2. Scrapy爬虫框架命令行操作
  3. CABasicAnimation x y z 轴旋转动画
  4. CoreJava 笔记总结-第十二章 并发-2
  5. mac下 如果docker 如果访问不到网 就下载哥docker-machine 然后进入到vbox下进行操作
  6. (转)Java随机数
  7. 实现一个闹钟_米系或许真的比米家更值,闹钟温度湿度,一个设备就搞定
  8. C# Rotating Oval
  9. 大豆叶片病害检测与分类系统
  10. jieba分词相关、join合并列表元素
  11. ANSI SQL标准和准则
  12. CAD制图初学入门:使用CAD切换窗口
  13. FFmpeg学习之QT音频播放
  14. vue插件集合17:vue获取国家以及地区的方法
  15. 计算机主板cpu的电源接口类型,给力:主板CPU电源的4pin和8pin有什么区别?
  16. 孙子兵法的计是最早的SWOT分析,《孙子兵法》首先不是战法,而是不战之法。首先不是战胜之法,而是不败之法...
  17. 从 .NET 开发人员的角度理解 Excel 对象模型--------结合上一篇 vb code excel 单元格锁定...
  18. xshell对mysql的备份与恢复_XShell5里面登陆了数据库,如何将数据库里面的表或者整个数据库备份导出来(和导入进去)...
  19. watch | 监听器、computend
  20. Linux 块设备之bio结构体

热门文章

  1. PLSQL 14.0.6 安装使用教程
  2. 安装Python第三方库的基本方法
  3. 2021中职网络空间安全国赛Web渗透测试
  4. 花书《深度学习》代码实现:01 线性代数:基本概念+代码实现基本运算
  5. linux视频补帧,SVP(电脑视频补帧软件) V4.3.180 Linux版
  6. 有哪些较好用的项目管理软件?
  7. 【软件安装管家】Axure RP 8软件安装包下载地址及安装教程
  8. android陀螺仪 cemu,CEMU安卓手柄陀螺仪教程
  9. catia批量转stp文件格式_CATIA CGR格式文件转stp或igs文件 | 坐倚北风
  10. 原生js模仿京东图片放大镜效果