【发布时间】:2020-10-25 14:20:39
【问题描述】:
假设我们有两个列表L1 和L2,其中包含按升序排序的整数。我想创建一个函数merge,它将这些列表作为参数并返回一个新的排序列表L,其中包含L1 和L2 的所有元素,即len(L) = len(L1) + len(L2)。我想使用两个列表都已排序但在实现merge 函数时不允许使用排序方法这一事实。
这是我的代码,我不知道为什么不对:
def merge(L1,L2):
L = L1 + L2
return L
def main():
L1 = [1,2,5,9,12]
L2 = [2,6,10]
L = sorted(merge(L1,L2))
print(L)
【问题讨论】:
-
你的代码有什么问题?
-
您不能使用 sorted 对合并函数的输出进行排序。
-
对两个列表进行了排序。您可以创建另一个列表。检查 L1[i]
-
"但是,您可以在主函数中使用这些排序来创建合并函数的输入。"这不是您在这里使用
sorted的方式。您正在使用它对结果进行排序。那不是他们想要的。merge应该工作的方式,结果已经被排序了。 -
我给你两堆卡片。每个都已经排序。我要你把所有的卡片堆在一起,这是一个排序的堆。但是您一次只能从任一堆中取出一张牌,并将其放在结果堆的顶部。你知道怎么做吗?