【发布时间】:2020-09-19 09:17:48
【问题描述】:
我最近有一个测试(现在已经结束了),我有一个问题: question
我可以做这个问题。然而,最后有一个测试用例说,如果该用例的运行时间
测试用例:
longList = [i for i in range(100000)]
print(calculateAreas(longList,longList[::-1]))
我的代码:
def calculateAreas(w_list,h_list):
width_length = len(w_list)
height_length = len(h_list)
list_of_areas = []
red_area = 0
white_area = 0
yellow_area = 0
for i in range(width_length):
for n in range(height_length):
if (i+n-2) % 3 == 0:
red_area += (w_list[i] * h_list[n])
if (i+n-2) % 3 == 1:
white_area += (w_list[i] * h_list[n])
if (i+n-2) % 3 == 2:
yellow_area += (w_list[i] * h_list[n])
list_of_areas.insert(0, white_area)
list_of_areas.insert(1, yellow_area)
list_of_areas.insert(2, red_area)
tuple_area = tuple(list_of_areas)
return tuple_area
【问题讨论】:
-
如果您希望效率高于一切,python 不是最好的选择,请尝试使用 C++
-
您可以在您的代码上运行分析器,这应该会为您返回最耗时的步骤。见here。我建议按
tottime排序运行它,因为这是你想要减少的。 -
@Evorage 如果您阅读了这个问题,您可以清楚地看到这是一个打算在 python 中解决的作业。所以请不要只是盲目地评论“C++ fAsTEr”。
-
只是为了确定:您确定
len(longList) = 100000的测试用例吗?对于低一个数量级(len(longList) = 10000)的情况,我会有一个解决方案(~0.3s),但这个测试用例目前是 27s(至少在我的机器上......)。 -
@venky__ 如果你注意到我只评论了一个我没有回答问题的建议,因此我的评论是有效的
标签: python loops for-loop iteration runtime