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

โปรแกรมนับจำนวนช่วงที่ตัดกัน ณ จุดที่กำหนดใน Python


สมมติว่าเรามีรายการช่วงเวลาและค่าที่เรียกว่าจุด แต่ละช่วงช่วงเวลา[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