Python程序:查找最长的汽车等速子列表的大小

Python程序:查找最长的汽车等速子列表的大小

假设我们有一个数字列表,表示车在等间隔的时间内的位置。我们必须找到最长的汽车速度恒定的子列表的大小。

因此,如果输入为positions = [0、4、8、12、6、4、0],则输出将为4,因为子列表为[0、4、8、12]。

要解决此问题,我们将遵循以下步骤-

  • j:= 1
  • max_cnt:= 0,current:= 0
  • 距离:= | positions [0] – positions [1] |
  • while j < positions的大小时,执行
    • prev:= positions [j-1]
    • 如果距离与|positions [j] – prev|相同,则
      • current:= current + 1
    • 否则,
      • max_cnt:= max(max_cnt和current)
      • current:= 1
      • 距离:= | positions [j] – prev |
    • max_cnt:= max(max_cnt和current)
    • j:= j + 1
  • 返回m ax_cnt + 1

让我们看以下示例以更好地理解-

更多Python相关文章,请阅读:Python 教程

例子

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 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程