สมมติว่าเรามีตัวเลข n และ p และ q สมมติว่าเรากำลังยืนอยู่ในแถวของคนจำนวน n คน เราไม่รู้ว่าเราอยู่ในตำแหน่งไหน แต่เรารู้ว่ามีคนอย่างน้อย p ข้างหน้าเรา และมากที่สุด q คนข้างหลังเรา เราต้องหาจำนวนตำแหน่งที่เป็นไปได้ที่เราสามารถทำได้
ดังนั้น หากอินพุตเป็น n =10, p =3, q =4 เอาต์พุตจะเป็น 5 เนื่องจากมีคน 10 คนและอย่างน้อย 3 คนอยู่ข้างหน้าและไม่เกิน 4 คนอยู่ด้านหลัง ดังนั้นเราจึงสามารถยืนที่ดัชนี [0, 1, 2, 3, 4] เช่น ที่ดัชนี 0, 9 คนอยู่ข้างหน้า 0 คนอยู่ข้างหลัง
วิธีแก้ปัญหานั้นง่าย เราจะคืนค่าขั้นต่ำของ q+1 และ n-p
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, n, p, q): return min(q+1, n-p) ob = Solution() print(ob.solve(n = 10, p = 2, q = 5))
อินพุต
10, 2, 5
ผลลัพธ์
6