汽车加油问题出现一些错误。它适用于大多数测试用例,但不适用于所有测试用例。你能告诉我为啥这段代码是错误的

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 命令行工具,但不适用于桌面客户端

发生冲突后在哈希表中实现链接时出现分段错误

我的代码适用于输入文件,但不适用于其他文件。 (调试断言错误)

Vue .sync 仅适用于 v-model,但会出现突变错误

Python-即使出现一些错误,如何继续我的测试脚本

黑盒测试用例设计-错误推测和因果图方法