题解 | #有序序列合并#

石头剪刀布

https://ac.nowcoder.com/acm/contest/27444/A

T1031-锅一(卢梓鸿)

A.有序序列合并:双指针

  • 时间复杂度:O(n+m)
  • 空间复杂度:O(1)

思路

初始化指针为两个序列的头指针,根据双指针所指的值比较大小将小值加入合并序列并指针前进一步,注意当其中一个指针到序列尾部时可以将另一个序列剩余部分直接加入合并序列。

代码

n, m = (int(i) for i in input().split())
a = [int(i) for i in input().split()]
b = [int(i) for i in input().split()]
res = []
j = k = 0
while j != n or k != m:
    if j == n:
        res = res + b[k:]
        k = m
    elif k == m:
        res = res + a[j:]
        j = n
    else:
        if a[j] > b[k]:
            res.append(b[k])
            k += 1
        else:
            res.append(a[j])
            j += 1
for i in res:
    print(i, end=" ")
全部评论

相关推荐

11-03 17:42
门头沟学院 Java
点赞 评论 收藏
分享
LZStarV:冲就好了,就算真的是字节也冲,面评脏了大不了等三四个月就淡了,而且等到那个时候实力进步了选择还多,何必拘泥于字节
点赞 评论 收藏
分享
09-19 12:15
门头沟学院 Java
迷茫的大四🐶:这下是真的打牌了,我可以用感谢信和佬一起打牌吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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