def getMaxMusle(distances, scores):     if(len(distances) == 0):         return []     elif(len(distances) == 1):         return [distances[0] * 2 + scores[0]]     import heapq as hq     n = len(distances)     rights = [(- distances[i] * 2 - scores[i], i) for i in range(n)]     hq.heapify(rights)     lefts, res, curr_i, curr_score = [], [], -1, 0     for _ in range(n):         if(not rights or              (lefts and lefts[0][0] <= rights[0][0] + 2 * distances[curr_i])):             curr_score -= hq.heappop(lefts)[0]             res.append(curr_score)         else:             curr_score += (- rights[0][0] - 2 *                  (distances[curr_i] if(curr_i >= 0) else 0))             curr_i = max(curr_i, rights[0][1])             hq.heappop(rights)             res.append(curr_score)             while(rights and rights[0][1] < curr_i):                 temp = hq.heappop(rights)                 hq.heappush(lefts, (temp[0] + 2 * distances[temp[1]], temp[1]))     return res AC 100
点赞 评论

相关推荐

07-21 12:41
已编辑
门头沟学院 Java
steelhead:不是你的问题,这是社会的问题。
点赞 评论 收藏
分享
Vincent777...:实习经历可以考虑放上去,对于软件使用方面可以细化一些,比如调整为:熟悉基于LSDYNA的瞬态动力学仿真分析,熟悉基于WORKBENCH的结构拓扑优化
我的简历长这样
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务