我知道我应该使用NumPy
和我的列表一样大的数组,但是我不能,因为我正在解决Kattis上的一个问题(一个有问题的站点,在那里你必须提交代码并且他们编译它),并且用import numpy
行提交代码会产生运行时错误。
我认为最花时间的过程是我阅读和整理所有的数据。我这样读和分类:
def readData():
import sys
lines = [line.strip() for line in sys.stdin]
points = [tuple([int(num) for num in line.split(" ")]) for line in lines] #we have a list of tuples: [(x1, y1), ... (xn, yn)]
sortedBySums = sorted(points, key = lambda x: (sum(x), x[0]))
sortedBySub = sorted(points, key = lambda x: (sub(x), x[0]))
稍后我还会访问表sortedBySums
和sortedBySubs
的元素,所以也许我也可以加快查找速度,但不知道如何进行。我正在使用list.index(element)
进行元素查找。而且,sub(x)
函数只是从第一个坐标减去第二个坐标。你知道吗
我有没有办法加快这个过程?从我所学的知识来看,sort
内置函数应该非常快,像这样使用for loop
也应该比使用常规的for loop
快得多,但是还有什么可以显著提高时间消耗的吗?你知道吗
请尝试以下方法:
而不是:
相关问题 更多 >
编程相关推荐