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

Chương trình tìm ra vùng thẳng đứng giữa hai điểm không có điểm nào nằm và là điểm rộng nhất trong Python

Giả sử, chúng ta có n số điểm là (x, y). Vùng thẳng đứng là vùng được kéo dài vô hạn dọc theo trục y. Chúng ta phải tìm ra khu vực thẳng đứng giữa hai điểm sao cho không có điểm nào khác nằm trong khu vực đó và là điểm rộng nhất.

Vì vậy, nếu đầu vào là pts =[[10,9], [11,11], [9,6], [11,9]], thì đầu ra sẽ là 1.

Chương trình tìm ra vùng thẳng đứng giữa hai điểm không có điểm nào nằm và là điểm rộng nhất trong Python

Các khu vực màu đỏ và xanh lam là tối ưu và không có điểm nào bên trong chúng.

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

  • sắp xếp các điểm trong danh sách

  • đối với tôi trong phạm vi từ 1 đến kích thước pts, hãy thực hiện

    • trả về giá trị lớn nhất là (pts [i, 0] - pts [i - 1, 0])

Ví dụ

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

def solve(pts):
   pts.sort()
   return max(pts[i][0] - pts[i - 1][0] for i in range(1, len(pts)))
print(solve([[10,9],[11,11],[9,6],[11,9]]))

Đầu vào

[[10,9],[11,11],[9,6],[11,9]]

Đầu ra

1