在Python中,顶部是功能性的,而底部则不是。非功能性类型有超时,功能类型已经传递.有什么关系?
环境是一个python3环境。
import sys
n, m = map(int, sys.stdin.readline().split())
arr = list(map(int, sys.stdin.readline().split()))
start = 0
end = max(arr)
def solution(arr, start, end):
result = 0
while start <= end:
total = 0
mid = (start + end) // 2
for i in arr:
if i > mid:
total += i - mid
if total < m:
end = mid - 1
else:
result = mid
start = mid + 1
return result
print(solution(arr, start, end))import sys
n, m = map(int, sys.stdin.readline().split())
arr = list(map(int, sys.stdin.readline().split()))
start = 0
end = max(arr)
result = 0
while start <= end:
total = 0
mid = (start + end) // 2
for i in arr:
if i > mid:
total += i - mid
if total < m:
end = mid - 1
else:
result = mid
start = mid + 1
print(result)

发布于 2020-08-25 14:59:38
我按照链接到相应的SPOJ问题。对于这个特殊的问题,python 3的限制是非常严格的,您的TLE是由I/O造成的(请阅读注释这里)。您的算法看起来是正确的。
考虑了函数调用和循环之间的差异。我向SPOJ提交了你的两个代码,都是TLE。
我建议把问题下面的评论筛选出来,找出潜在的陷阱,供将来参考,这是很有帮助的。
https://stackoverflow.com/questions/63555486
复制相似问题