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

Chương trình tìm khoảng cách tối đa giữa ghế trống và ghế đã có người trong Python

Giả sử chúng ta có một danh sách chỉ có 0 và 1 được gọi là chỗ ngồi. Trong đó chỗ ngồi [i] đại diện cho chỗ ngồi. Khi nó là 1, thì nó sẽ bị chiếm dụng, nếu không thì miễn phí. Có ít nhất một chỗ ngồi trống và ít nhất một chỗ ngồi có người ngồi, chúng ta phải tìm khoảng cách tối đa từ chỗ ngồi còn trống đến chỗ ngồi gần nhất.

Vì vậy, nếu đầu vào giống như chỗ ngồi =[1, 0, 1, 0, 0, 0, 1], thì đầu ra sẽ là 2, vì chúng ta có thể chiếm chỗ ngồi [4], khi đó khoảng cách là 2.

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

  • res:=0

  • cuối cùng:=-1

  • n:=kích thước chỗ ngồi

  • đối với tôi trong phạm vi từ 0 đến n - 1, hãy thực hiện

    • nếu ghế [i] ​​là 1 thì

      • res:=tối đa của res và (i nếu cuối cùng <0 nếu không thì tầng của (i-last) / 2)

      • cuối cùng:=i

  • trả về tối đa res và (n-last-1)

Ví dụ

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

 def giải quyết (ghế):res, cuối cùng, n =0, -1, len (ghế) cho tôi trong dải (n):nếu ghế [i]:res =max (res, i nếu cuối cùng <0 khác (i - last) // 2) last =tôi trả về max (res, n - last - 1) chỗ =[1, 0, 1, 0, 0, 0, 1] print (giải (chỗ))  

Đầu vào

 [1, 0, 1, 0, 0, 0, 1] 

Đầu ra

 2