Giả sử chúng ta có một danh sách các khoảng và một giá trị được gọi là điểm. Mỗi khoảng thời gian [i] chứa [si, ei] đại diện cho thời gian bắt đầu và thời gian kết thúc của khoảng thời gian i (bao gồm cả hai). Chúng ta phải tìm số khoảng giao nhau tại một điểm đã cho.
Vì vậy, nếu đầu vào giống như khoảng =[[2, 6], [4, 10], [5, 9], [11, 14]] point =5, thì đầu ra sẽ là 3, vì tại thời điểm 5, có 3 khoảng đó là [3, 6], [4, 10], [5, 9]
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
đếm:=0
-
đối với mỗi thời gian bắt đầu i và thời gian kết thúc j trong các khoảng thời gian, hãy thực hiện
-
nếu point> =i và point <=j, thì
-
count:=count + 1
-
-
-
số lần trả lại
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
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