ধরুন আমাদের কাছে পূর্ণসংখ্যার ব্যবধানের তালিকার একটি তালিকা রয়েছে যেখানে প্রতিটি উপাদানের ব্যবধান রয়েছে যেমন [শুরু, শেষ]। আমাদের ব্যবধানে সবচেয়ে ঘন ঘন সংঘটিত সংখ্যাটি খুঁজে বের করতে হবে। যদি টাই থাকে, তাহলে সবচেয়ে ছোট সংখ্যাটি ফেরত দিন।
সুতরাং, যদি ইনপুটটি [[2, 5],[4, 6],[7, 10],[8, 10]] এর মত হয়, তাহলে আউটপুট হবে 4
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি মানচিত্র m
সংজ্ঞায়িত করুন -
cnt :=0, val :=0
-
প্রতিটি মানের জন্য এটি x −
এ-
(m[it[0]] 1 দ্বারা বাড়ান)
-
1
দ্বারা m[it[1] + 1] হ্রাস করুন
-
-
শেষ :=0
-
প্রতিটি কীর জন্য এটি m
এ-
last :=শেষ + এর মান
-
শেষ হলে> cnt, তারপর:
-
cnt :=শেষ
-
val :=এটা
-
-
-
রিটার্ন ভ্যাল
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int solve(vector<vector<int>>& x) {
map <int, int> m;
int cnt = 0;
int val = 0;
for(auto& it : x){
m[it[0]]++;
m[it[1] + 1]--;
}
int last = 0;
for(auto& it : m){
last += it.second;
if(last > cnt){
cnt = last;
val = it.first;
}
}
return val;
}
};
main() {
Solution ob;
vector<vector<int>> v = {{2, 5},{4, 6},{7, 10},{8, 10}};
cout << ob.solve(v);
} ইনপুট −
{{2, 5},{4, 6},{7, 10},{8, 10}} আউটপুট
4