首页 > 编程语言 > 详细

NC22 合并两个有序的数组

时间:2021-01-10 11:33:14      阅读:35      评论:0      收藏:0      [点我收藏+]

给出两个有序的整数数组 技术分享图片和 技术分享图片,请将数组 技术分享图片合并到数组 技术分享图片中,变成一个有序的数组
注意:
可以假设 技术分享图片数组有足够的空间存放 技术分享图片数组的元素, 技术分享图片和 技术分享图片中初始的元素数目分别为 技术分享图片和 技术分享图片

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

或:

  1. 双指针从A和B的m、n尾部遍历
  2. 比较A和B的m、n尾部的值,将较大值赋给A整体数组的尾部,指针左移
  3. 注意特殊情况处理:A的尾指针已遍历结束,B尾指针还未结束。
#
# 
# @param A int整型一维数组 
# @param B int整型一维数组 
# @return void
#
class Solution:
    def merge(self , A, m, B, n):
        # write code here
        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

 

NC22 合并两个有序的数组

原文:https://www.cnblogs.com/xiyuan2016/p/14257519.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!