Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình đếm số khoảng thời gian giao nhau tại một thời điểm trong Python

Cho danh sách khoảng thời gian intervals (mỗi khoảng [start, end] bao gồm cả hai đầu) và một thời điểm point. Đếm số khoảng chứa point.

Ví dụ: intervals = [[2,6],[4,10],[5,9],[11,14]], point = 5 → kết quả 3 (khoảng [2,6], [4,10], [5,9]).

Thuật toán giải quyết (O(n))

  1. Khởi tạo count = 0
  2. Duyệt từng khoảng [i, j]:
    • Nếu point >= i and point <= j: count += 1
  3. Trả về count

Ví dụ minh họa

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))

Đầu vào

[[2, 6],[4, 10],[5, 9],[11, 14]], 5

Đầu ra

3