สมมติว่าเรามีรายการช่วงเวลาและค่าที่เรียกว่าจุด แต่ละช่วงช่วงเวลา[i] ประกอบด้วย [si, ei] หมายถึงเวลาเริ่มต้นและเวลาสิ้นสุดของช่วง i (รวมทั้งสองอย่าง) เราต้องหาจำนวนช่วงที่ตัดกัน ณ จุดที่กำหนด
ดังนั้น ถ้าอินพุตเหมือนช่วง =[[2, 6],[4, 10],[5, 9],[11, 14]] จุด =5 ผลลัพธ์จะเป็น 3 เพราะ ณ เวลา 5 มี 3 ช่วง คือ [3, 6], [4, 10], [5, 9]
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
นับ :=0
-
สำหรับเวลาเริ่มต้นแต่ละครั้ง i และเวลาสิ้นสุด j ในช่วงเวลา ให้ทำ
-
ถ้า point>=i และ point <=j แล้ว
-
นับ :=นับ + 1
-
-
-
จำนวนคืน
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def solve(intervals, point): count = 0 for i, j in intervals: if point >= i and point <= j: count += 1 return count intervals = [[2, 6],[4, 10],[5, 9],[11, 14]] point = 5 print(solve(intervals, point))
อินพุต
[[2, 6],[4, 10],[5, 9],[11, 14]], 5
ผลลัพธ์
3