মান লক্ষ্য করুন আমাদের কাছে একটি ইন্টারভালের তালিকা আছে যেটি [start, end] ফর্মে (ইনক্লूसিভ)। আমাদের কাজ হল এই ইন্টারভালগুলো মিলে টোটাল ইউনিক ডিউরেশন (সময়/দূরত্ব) কত কভার করে তা বের করা।
উদাহরণস্বরূপ, যদি ইনপুট হয় intervals = [[2, 11],[13, 31],[41, 61]], তবে আউটপুট হবে 50, কারণ টোটাল ইউনিক কভারেজ হল (11-2+1)=10, (31-13+1)=19, (61-41+1)=21 — মোট 50।
- যদি
intervalsখালি হয়, তবে0রিটার্ন করুন। intervalsসর্ট করুন।[start, end] := intervals[0]ans := 0- প্রতিটি
(s, e)এর জন্যintervals-এ:- যদি
s > endহয়, তবে:ans += end - start + 1start := s,end := e
- অন্যথায়,
end := max(end, e)
- যদি
ans += end - start + 1ansরিটার্ন করুন।
class Solution:
def solve(self, intervals):
if not intervals:
return 0
intervals.sort()
start, end = intervals[0]
ans = 0
for s, e in intervals:
if s > end:
ans += end - start + 1
start = s
end = e
else:
end = max(end, e)
ans += end - start + 1
return ans
ob = Solution()
intervals = [[2, 11],[13, 31],[41, 61]]
print(ob.solve(intervals))
[[2, 11],[13, 31],[41, 61]]
50