Python 如何改进我的代码,使其不会';不显示超时错误

Python 如何改进我的代码,使其不会';不显示超时错误,python,median,Python,Median,当我使用下面的代码在python中计算中值时,它显示了超时错误 import os import sys import math def runningMedian(a): result=[] l=[] for i in range(0,len(a)): l.append(a[i]) l.sort() if len(l)==1: result.append(float(l[0])) e

当我使用下面的代码在python中计算中值时,它显示了超时错误

import os
import sys
import math
def runningMedian(a):
    result=[]
    l=[]
    for i in range(0,len(a)):
        l.append(a[i])
        l.sort()
        if len(l)==1:
            result.append(float(l[0]))
        elif len(l)%2==0:
            d=math.ceil(len(l)/2)
            result.append(float(l[d-1]+l[d])/2)
        elif len(l)%2!=0:
           result.append(float(l[math.floor(len(l)/2)]))
    return result

你的代码对我来说很好。@blhsing但是当我在hackerrank上运行它时,这显示超时错误。我明白了。这是一个性能/效率问题。首先,尽量降低时间复杂度。您当前正在循环的每个步骤中执行
l.sort
。即
O(n^2 log n)
。虽然这个解决方案可能是正确的,但还不够好,因为整个任务是拿出一个更智能的解决方案,而不必做所有这些。请注意,在执行
l.append
l.sort
时,列表已排序,但最后一个元素除外。也要避免给某些东西命名,尤其是为黑客银行命名