程序查找最长子列表的大小,其中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