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

C++ में सभी अंतरालों का प्रतिच्छेदन ज्ञात कीजिए


मान लीजिए, हमारे पास {L, R} के रूप में N अंतराल हैं, L आरंभिक समय है, और R अंत समय है। हमें सभी अंतरालों का एक प्रतिच्छेदन खोजना है। एक चौराहा एक अंतराल है जो सभी दिए गए अंतरालों के भीतर होता है। यदि ऐसा कोई नहीं मिला, तो वापसी -1। उदाहरण के लिए, यदि अंतराल [{1, 6}, {2, 8}, {3, 10}, {5, 8} जैसे हैं, तो आउटपुट अंतराल {5, 6}

है।

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

  • पहले अंतराल को अंतिम अंतराल मानें

  • दूसरे अंतराल से शुरू करते हुए, चौराहे को खोजने का प्रयास करें। दो मामले हो सकते हैं

    • [L1, R1] और [L2, R2] के बीच कोई प्रतिच्छेदन केवल तभी संभव है जब R1 होगा।

    • [L1, R1] और [L2, R2] के बीच कोई चौराहा मौजूद नहीं है, तो आवश्यक चौराहा होगा {max(L1, L2), min(R1, R2)}

उदाहरण

#include<iostream>
#include<algorithm>
using namespace std;
class interval{
   public:
      int left, right;
};
void findIntersection(interval intervals[], int N) {
   int l = intervals[0].left;
   int r = intervals[0].right;
   for (int i = 1; i < N; i++) {
      if (intervals[i].left > r || intervals[i].right < l) {
         cout << -1;
         return;
      } else {
         l = max(l, intervals[i].left);
         r = min(r, intervals[i].right);
      }
   }
   cout << "{" << l << ", " << r << "}";
}
int main() {
   interval intervals[] = {{ 1, 6 }, { 2, 8 }, { 3, 10 }, { 5, 8 } };
   int N = sizeof(intervals) / sizeof(intervals[0]);
   findIntersection(intervals, N);
}

आउटपुट

{5, 6}

  1. C++ में सभी डुप्लीकेट सबट्री खोजें

    विचार करें कि हमारे पास एक बाइनरी ट्री है। हमें यह पता लगाना है कि पेड़ में कुछ डुप्लिकेट सबट्री हैं या नहीं। मान लीजिए हमारे पास नीचे जैसा एक बाइनरी ट्री है - आकार 2 के दो समान सबट्री हैं। प्रत्येक सबट्री में डी, बीडी और बीई दोनों भी डुप्लीकेट सबट्री हैं। हम ट्री सीरियलाइजेशन और हैशिंग प्रक्रिया

  1. सी ++ प्रोग्राम एक ग्राफ में सभी आगे के किनारों को खोजने के लिए

    इस खंड में, हम एक ग्राफ में सभी आगे के किनारों को खोजने के लिए एक C++ प्रोग्राम पर विचार करेंगे। एल्गोरिदम टोपो फंक्शन के लिए Begin    Declare function topo()       Declare pointer v, m[][5] and i of the integer datatype.       x = new Node_Inf.    

  1. C++ प्रोग्राम एक द्विघात समीकरण के सभी मूल खोजने के लिए

    द्विघात समीकरण ax2 . के रूप में होता है + बीएक्स + सी। द्विघात समीकरण के मूल निम्न सूत्र द्वारा दिए गए हैं - तीन मामले हैं - बी2 <4*a*c - जड़ें असली नहीं होती हैं यानी वे जटिल होती हैं बी2 =4*a*c - मूल वास्तविक हैं और दोनों मूल समान हैं। बी2 4*a*c - जड़ें असली हैं और दोनों जड़ें अलग हैं द्विघ