题解 | #有序序列合并#

石头剪刀布

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=" ")
全部评论

相关推荐

07-22 11:07
门头沟学院 Java
点赞 评论 收藏
分享
人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
07-18 14:34
门头沟学院 Java
感觉招聘要求好高,这都是招什么人才
电气电子小朋友:你都说了这是大疆,无人机顶级企业,薪资30k-50k,要求高是正常的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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