ปัญหา
มีจุด n จุด (x, y) พื้นที่แนวตั้งคือพื้นที่ที่ขยายไปอันตรายตามแกน y หาพื้นที่ระหว่างสองจุดที่ไม่มีจุดอื่นอยู่ภายในและกว้างที่สุด
ตัวอย่าง
pts = [[10,9],[11,11],[9,6],[11,9]] → ผลลัพธ์ 1
ขั้นตอนการแก้ปัญหา
- เรียง
ptsตาม x - คืนค่า
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