我最近开始学习编程,刚刚完成了edX课程。我正试图解决HackerRank上的this问题,并且在每种情况下都耗尽了时间。我究竟做错了什么?我的递归实现有什么问题?
n,k = input().strip().split(' ')
n,k = [int(n),int(k)]
x = [int(x_temp) for x_temp in input().strip().split(' ')]
x.sort()
def transmitter(aList=[], target=0):
'''
accepts a list of house location, and a target location for the transmitter
returns the optimal number of transmitters required to cover all the houses
'''
List = aList[:]
start = target - k
end = target + k + 1
for i in range(start, end):
if i in List:
List.remove(i)
if not List:
return 1
m = max(List)
for e in List:
if transmitter(List, e) < m:
m = transmitter(List, e)
return 1 + m
m = max(x)
for e in x:
if transmitter(x, e) < m:
m = transmitter(x, e)
print(m)
我对此很新颖。对不起,有任何明显的错误,或在这里发布这里,以防这不适合的网站。在这种情况下,如果你能推荐一个我可以问这样的问题的网站,这将会非常有帮助。
the screenshot of the question
时间(参考你的问题)和空间(参考你的标题)是两个不同的维度(不想进入时空连续体辩论)。 – trincot
@trincot但我认为我的时间不够用了,因为我的解决方案太昂贵了。 – codeNoob
我无法找到问题的描述。看起来URL不再有效。你可以添加描述吗? – trincot