মান লইয়া, আমাদের একসেটে ইন্টারভাল দেওয়া আছে যাতে ভ্যালু (time1, time2) থাকে যেখানে time1 কোনো ইভেন্টের শুরুয় সময় এবং time2 সমাপ্তির সময় নির্দেশ করে। আমাদের কাজ হচ্ছে চেক করা এই ইন্টারভালগুলোর মধ্যে যেকোনো একটি অন্য যেকোনো ইন্টারভালের সাথে ওভারল্যাপ করে কিনা। যদি কোনো ওভারল্যাপ থাকে, তবে রেজাল্ট True রিটার্ন করুন, অন্যথায় False।
তাহলে, যদি ইনপুট হয় [(4,7), (5,11), (7,11), (5,8)] তবে আউটপুট হবে True।
এটি সমাধান করার জন্য নিচের ধাপগুলো অনুসরণ করব:
inputArrলিস্টটি সোর্ট করুনi = 1থেকেinputArrএর সাইজ পর্যন্ত লুপ চালান, 거기서- যদি
inputArr[i - 1].time2 > inputArr[i].time1হয়, তবেTrueরিটার্ন করুন
Falseরিটার্ন করুন
- যদি
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
class IntervalClass {
public:
int time1, time2;
};
bool compare(IntervalClass inst1, IntervalClass inst2) {
return (inst1.time1 < inst2.time1) ? true : false;
}
bool solve(vector<IntervalClass> &inputArr) {
int size = inputArr.size();
sort(inputArr.begin(), inputArr.end(), compare);
for (int i = 1; i < size; i++) {
if (inputArr[i - 1].time2 > inputArr[i].time1) {
return true;
}
}
return false;
}
int main() {
vector<IntervalClass> inputArr = {{4,7},{5,11},{7,11},{5,8}};
int size = sizeof(inputArr) / sizeof(inputArr[0]);
cout << solve(inputArr);
}
ইনপুট
{{4,7},{5,11},{7,11},{5,8}}
আউটপুট
1