gpt4 book ai didi

python - 关于 Google python 类日的解决方案的问题

转载 作者:行者123 更新时间:2023-11-30 23:53:19 24 4
gpt4 key购买 nike

嘿,我正在尝试学习一些有关 Python 的知识,所以我决定遵循 Google 的 tutorial 。无论如何,我对他们的练习解决方案之一有疑问。

我在哪里这样做的。

# E. Given two lists sorted in increasing order, create and return a merged
# list of all the elements in sorted order. You may modify the passed in lists.
# Ideally, the solution should work in "linear" time, making a single
# pass of both lists.
def linear_merge(list1, list2):
# +++your code here+++
return sorted(list1 + list2)

但是他们以更复杂的方式做到了。那么Google的解决方案更快吗?因为我在评论行中注意到该解决方案应该在“线性”时间内工作,而我的可能不是?

这是他们的解决方案

def linear_merge(list1, list2):
# +++your code here+++
# LAB(begin solution)
result = []
# Look at the two lists so long as both are non-empty.
# Take whichever element [0] is smaller.
while len(list1) and len(list2):
if list1[0] < list2[0]:
result.append(list1.pop(0))
else:
result.append(list2.pop(0))

# Now tack on what's left
result.extend(list1)
result.extend(list2)
return result

最佳答案

这可能是另一个解决方案?#

    def linear_merge(list1, list2):
tmp = []
while len(list1) and len(list2):
#print list1[-1],list2[-1]
if list1[-1] > list2[-1]:
tmp.append(list1.pop())
else:
tmp.append(list2.pop())
#print "tmp = ",tmp

#print list1,list2
tmp = tmp + list1
tmp = tmp + list2
tmp.reverse()
return tmp

关于python - 关于 Google python 类日的解决方案的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5840764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com