题解 | #合并两个有序的数组#

合并两个有序的数组

https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665

#
# 
# @param A int整型一维数组 
# @param B int整型一维数组 
# @return void
#
class Solution:
    def merge(self , A, m, B, n):
        # write code here
        # A[m:] = B
        # A.sort()

        # 方法2
        m-=1
        for i in range(n-1,-1,-1):
            while A[m] > B[i] and m >= 0:
                A[m+i+1] = A[m]
                m = m - 1
            A[m+i+1] = B[i]

        #bing
        # m = m-1
        # n = n-1
        # while n >= 0:
        #     if m >= 0 and A[m] > B[n]:
        #         A[m + n + 1] = A[m]
        #         m -= 1
        #     else:
        #         A[m + n + 1] = B[n]
        #         n -= 1

这题很简单,直接合并然后sort(bushi

因为A,B本身就有序,所以可以按顺序判断。

A已经扩容,直接在A里面修改即可。

逆序逐一判断B中的元素,如果原本A数组的末尾更大,就末尾就写入A,并且while判断下一个A,直到找到比B末位更小的A,或者A序列耗尽。那么就把B的末尾写入A。

这样,就按顺序把所有B写进A了。

不过要注意range里面是逗号,不是冒号,别matlab上头了。还要注意下标的问题。python和C++都是从0开始。

#日常刷题#
全部评论

相关推荐

12-08 18:59
东北大学 Java
Java抽象带篮子:外卖项目可以看看我的详细的外卖话术,里面还写了怎么描述项目,还为了提高含金量额外增加了很多技术亮点呢。另外我这边还有个7000多字的轮子项目话术,可以狠狠的速成,需要的似我
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务