Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ . में बैठक कक्ष II

मान लीजिए कि बैठक के समय अंतराल की एक सरणी है। दो बार प्रारंभ और समाप्ति समय हैं [[s1,e1],[s2,e2],...] और प्रत्येक जोड़ी नियम को संतुष्ट करती है (si

इसलिए, अगर इनपुट [[0, 30], [5, 10], [15, 20]] जैसा है, तो आउटपुट 2 होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एक प्राथमिकता कतार pq परिभाषित करें

  • अंतराल सरणी को क्रमबद्ध करें

  • रिट:=0

  • इनिशियलाइज़ i :=0 के लिए, जब i <अंतराल का आकार, अपडेट करें (i से 1 बढ़ाएँ), करें -

    • जबकि (pq खाली नहीं है और pq का शीर्ष तत्व <=अंतराल [i, 0]), करते हैं -

      • pq से तत्व हटाएं

    • pq में अंतराल [i] डालें

    • ret :=अधिकतम रिट और pq का आकार

  • वापसी रिट

उदाहरण

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
struct Comparator{
   bool operator()(vector <int<& a, vector <int<& b){
      return !(a[1] < b[1]);
   }
};
class Solution {
public:
   static bool cmp(vector <int< a, vector <int< b){
      return (a[1] < b[1]);
   }
   int minMeetingRooms(vector<vector<int<>& intervals) {
      priority_queue<vector<int<, vector<vector<int< >, Comparator> pq;
      sort(intervals.begin(), intervals.end());
      int ret = 0;
      for (int i = 0; i < intervals.size(); i++) {
         while (!pq.empty() && pq.top()[1] <= intervals[i][0])
         pq.pop();
         pq.push(intervals[i]);
         ret = max(ret, (int)pq.size());
      }
      return ret;
   }
};
main(){
   vector<vector<int<> v = {{0, 30}, {5, 10}, {15, 20}};
   Solution ob;
   cout << (ob.minMeetingRooms(v));
}

इनपुट

{{0, 30}, {5, 10}, {15, 20}}

आउटपुट

2

  1. C++ . में विकर्ण ट्रैवर्स II

    मान लीजिए कि हमारे पास nums नामक सूचियों की एक सूची है, हमें अंकों के सभी तत्वों को विकर्ण क्रम में दिखाना होगा। तो, अगर इनपुट पसंद है तो आउटपुट [1,6,2,8,7,3,9,4,12,10,5,13,11,14,15,16] होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक सरणी रिट परिभाषित करें एक 2डी सरणी को परिभाषित

  1. सी ++ में प्रक्रिया को मारें

    मान लीजिए कि हमारे पास n प्रक्रियाएं हैं, यहां प्रत्येक प्रक्रिया की एक विशिष्ट आईडी होती है जिसे PID या प्रक्रिया आईडी कहा जाता है और उसका PPID (पैरेंट प्रोसेस आईडी) भी होता है। प्रत्येक प्रक्रिया में केवल एक पैरेंट प्रक्रिया होती है, लेकिन इसमें एक या अधिक चाइल्ड प्रक्रियाएं हो सकती हैं। यह एक प

  1. सी ++ में गिलहरी सिमुलेशन

    एक पेड़, एक गिलहरी, और कई नट हैं। स्थितियों को 2डी ग्रिड में कोशिकाओं द्वारा दर्शाया जाता है। आपका लक्ष्य गिलहरी के लिए सभी नटों को इकट्ठा करने और उन्हें एक-एक करके पेड़ के नीचे रखने के लिए न्यूनतम दूरी का पता लगाना है। गिलहरी एक समय में केवल एक अखरोट ले सकती है और चार दिशाओं में - ऊपर, नीचे, बाएँ औ