合并两个有序数组(python版)

合并两个有序的数组

http://www.nowcoder.com/questionTerminal/89865d4375634fc484f3a24b7fe65665

归并排序的套路,按照下面套路来就完事了。
思路:

  1. 双指针从A和B的m、n尾部遍历
  2. 比较A和B的m、n尾部的值,将较大值赋给A整体数组的尾部,指针左移
  3. 注意特殊情况处理:A的尾指针已遍历结束,B尾指针还未结束。

代码:

# @param A int整型一维数组 
# @param B int整型一维数组 
#
class Solution:
    def merge(self , A, m, B, n):
        if not A and not B: return []
        elif not A: return B
        elif not B: return A
        while m > 0 and n > 0:
            if A[m-1] >= B[n-1]:
                A[m+n-1] = A[m-1]
                m-=1
            else:
                A[m+n-1] = B[n-1]
                n-=1
        if n > 0: A[:n] = B[:n]
        return A

麻豆出品,必出精品!

全部评论
麻豆有什么好看的新番求推荐
1 回复 分享
发布于 2021-05-18 18:25
A[m+n-1]会超出范围吧,例如m=1,n=2,A[2]
点赞 回复 分享
发布于 2021-05-10 11:29
老麻豆了
点赞 回复 分享
发布于 2021-04-24 17:12
为啥我数组越界啊,idea没问题,这里就数组越界
点赞 回复 分享
发布于 2021-03-17 10:47
1024
点赞 回复 分享
发布于 2021-02-28 23:07
我觉得可以在注释里多写点神秘代码[dog]
点赞 回复 分享
发布于 2020-11-15 18:30

相关推荐

程序员饺子:正常 我沟通了200多个 15个要简历 面试2个 全投的成都的小厂。很多看我是27直接不会了😅
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
评论
55
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务