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

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

ปัญหา

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

ตัวอย่าง

pts = [[10,9],[11,11],[9,6],[11,9]] → ผลลัพธ์ 1

ขั้นตอนการแก้ปัญหา

  1. เรียง pts ตาม x
  2. คืนค่า max(pts[i][0] - pts[i-1][0] for i in 1..len(pts)-1)

การนำไปใช้งาน (Python)

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