程序查找最长子列表的大小,其中python中的车速恒定
假设我们有一个数字列表,这些数字代表等距间隔的汽车位置。我们必须找到汽车以恒定速度行驶的最长子列表的大小。
因此,如果输入类似于位置=[0、4、8、12、6、4、0],则输出将为4,因为子列表为[0、4、8、12]。
为了解决这个问题,我们将遵循以下步骤-
j:=1
max_cnt:=0,当前:=0
距离:=|位置[0]-位置[1]|
当j<头寸大小时,
max_cnt:=max_cnt和当前值的最大值
当前:=1
距离:=|位置[j]-上一页|
当前:=当前+1
上一页:=职位[j-1]
如果距离与|position[j]-prev|相同,然后
除此以外,
max_cnt:=max_cnt和当前值的最大值
j:=j+1
返回max_cnt+1
让我们看下面的实现以更好地理解-
例
class Solution:
def solve(self, positions):
j = 1
max_cnt = 0
current = 0
distance = abs(positions[0] - positions[1])
while j < len(positions):
prev = positions[j - 1]
if distance == abs(positions[j] - prev):
current += 1
else:
max_cnt = max(max_cnt, current)
current = 1
distance = abs(positions[j] - prev)
max_cnt = max(max_cnt, current)
j += 1
return max_cnt + 1
ob = Solution()positions = [0, 4, 8, 12, 6, 4, 0]
print(ob.solve(positions))输入值
[0, 4, 8, 12, 6, 4, 0]
输出结果
4