Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm kích thước của danh sách con dài nhất trong đó tốc độ ô tô không đổi trong python

Giả sử chúng ta có một danh sách các con số đại diện cho vị trí của một chiếc ô tô trong những khoảng thời gian cách đều nhau. Chúng tôi phải tìm kích thước của danh sách phụ dài nhất mà ô tô đang di chuyển với tốc độ không đổi.

Vì vậy, nếu đầu vào giống như các vị trí =[0, 4, 8, 12, 6, 4, 0], thì đầu ra sẽ là 4, vì danh sách con là [0, 4, 8, 12].

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • j:=1
  • max_cnt:=0, hiện tại:=0
  • khoảng cách:=| vị trí [0] - vị trí [1] |
  • while j
  • trước:=vị trí [j - 1]
  • nếu khoảng cách giống như | vị trí [j] - trước | , sau đó
    • hiện tại:=current + 1
  • nếu không,
    • max_cnt:=tối đa của max_cnt và hiện tại
    • hiện tại:=1
    • khoảng cách:=| vị trí [j] - trước |
  • max_cnt:=tối đa của max_cnt và hiện tại
  • j:=j + 1
  • trả về max_cnt + 1
  • Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

    Ví dụ

    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))

    Đầu vào

    [0, 4, 8, 12, 6, 4, 0]

    Đầu ra

    4