汽车加油问题出现一些错误。它适用于大多数测试用例,但不适用于所有测试用例。你能告诉我为啥这段代码是错误的
Posted
技术标签:
【中文标题】汽车加油问题出现一些错误。它适用于大多数测试用例,但不适用于所有测试用例。你能告诉我为啥这段代码是错误的【英文标题】:Getting some error with car refuling problem. It works for most of the test cases but not for all. Can you pls tell me why this code is wrong汽车加油问题出现一些错误。它适用于大多数测试用例,但不适用于所有测试用例。你能告诉我为什么这段代码是错误的 【发布时间】:2021-10-15 17:59:48 【问题描述】:这是一个名为汽车加油问题的贪心算法问题。首先,我正在检查是否有可能完成轨道。在此之后,我使用贪婪方法计算最少的步骤。我的方法是:首先我要达到我可以使用燃料的最大距离,然后我尝试找到与该最大点距离最短的点。然后我在计算循环运行了多少次。1
这里是代码
def compute_min_refills(distance , tank , stops):
length , refill = 0,0
stops.append(distance)
z = 0
stops.insert(0,z)
stops.sort()
for i in range(len(stops) - 1):
if stops[i+1] - stops[i] > tank:
return -1
if tank >= distance:
return 0
i = 0
while length < stops[-1]:
array = []
refill += 1
while length + tank >= stops[i]:
array.append(stops[i])
i += 1
if i == len(stops) :
break
length += tank
x = max(array)
if distance <= stops[i-1]:
refill -= 1
if x == stops[-2]:
return refill
return refill
【问题讨论】:
这又是一个 Leetcode 问题?您应该提供有关问题描述的详细信息 - 例如。什么是距离、坦克等? 【参考方案1】:** 这是完整的代码
def compute_min_refills(distance , tank , stops):
length , refill = 0,0
stops.append(distance)
z = 0
stops.insert(0,z)
stops.sort()
for i in range(len(stops) - 1):
if stops[i+1] - stops[i] > tank:
return -1
if tank >= distance:
return 0
i = 0
while length < stops[-1]:
array = []
refill += 1
while length + tank >= stops[i]:
array.append(stops[i])
i += 1
if i == len(stops) :
break
length += tank
x = max(array)
if distance <= stops[i-1]:
refill -= 1
if x == stops[-2]:
return refill
return refill
【讨论】:
以上是关于汽车加油问题出现一些错误。它适用于大多数测试用例,但不适用于所有测试用例。你能告诉我为啥这段代码是错误的的主要内容,如果未能解决你的问题,请参考以下文章
自动化测试用例适用于 appium 命令行工具,但不适用于桌面客户端
我的代码适用于输入文件,但不适用于其他文件。 (调试断言错误)