Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาพื้นที่แนวตั้งระหว่างจุดสองจุดที่ไม่มีจุดอยู่และกว้างที่สุดใน Python


สมมติว่าเราได้รับคะแนน n เป็น (x, y) พื้นที่แนวตั้งคือพื้นที่ที่ขยายออกไปตามแกน y อย่างไม่สิ้นสุด เราต้องหาพื้นที่แนวตั้งระหว่างจุดสองจุดเพื่อไม่ให้มีจุดอื่นอยู่ภายในพื้นที่และกว้างที่สุด

ดังนั้น หากอินพุตเป็นเหมือน pts =[[10,9],[11,11],[9,6],[11,9]] ผลลัพธ์จะเป็น 1

โปรแกรมหาพื้นที่แนวตั้งระหว่างจุดสองจุดที่ไม่มีจุดอยู่และกว้างที่สุดใน Python

พื้นที่สีแดงและสีน้ำเงินเหมาะสมที่สุด และไม่มีจุดอยู่ภายใน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • เรียงลำดับรายการ pts

  • สำหรับฉันอยู่ในช่วง 1 ถึงขนาดของ pts ทำ

    • ส่งคืนค่าสูงสุดของ (pts[i, 0] - pts[i - 1, 0])

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

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

อินพุต

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

ผลลัพธ์

1