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

Tìm khoảng cách tối đa giữa bất kỳ thành phố và nhà ga nào bằng Python


Giả sử chúng ta có N số thành phố, và chúng được đánh số từ 0 đến N-1 và chúng ta cũng có các thành phố mà các nhà ga được đặt, chúng ta phải tìm khoảng cách tối đa giữa các thành phố và nhà ga gần nhất của nó. Chúng tôi phải ghi nhớ rằng các thành phố có nhà ga có thể được cung cấp theo bất kỳ thứ tự nào.

Vì vậy, nếu đầu vào là N =6 và các trạm =[2,4], thì đầu ra sẽ là 2

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

  • station_present:=danh sách kích thước N và điền sai

  • đối với mỗi thành phố trong ga, thực hiện

    • station_present [city]:=True

  • dist:=0, Maximum_dist:=tối thiểu của trạm

  • đối với thành phố trong phạm vi từ 0 đến N, thực hiện

    • nếu station_present [city] là True, thì

      • max_dist:=tối đa (dist + 1) / 2, Maximum_dist

      • dist:=0

    • nếu không,

      • dist:=dist + 1

  • trả về tối đa của Maximum_dist, dist

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

def get_max_dist(N, station):
   station_present = [False] * N
   for city in station:
      station_present[city] = True
   dist, maximum_dist = 0, min(station)
   for city in range(N):
      if station_present[city] == True:
         maximum_dist = max((dist + 1) // 2, maximum_dist)
         dist = 0
      else:
         dist += 1
   return max(maximum_dist, dist)
N = 6
station = [2, 4]
print(get_max_dist(N, station))

Đầu vào

6, [2,4]

Đầu ra

2