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

C++ में दिए गए अंतराल सेट में किन्हीं दो अंतरालों के ओवरलैप की जांच करें


समस्या विवरण

मान लें, हमें अंतरालों का एक सेट दिया गया है जिसमें मान (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 लौटाएं

C++ कोड उदाहरण

#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
  1. - C++ में जांचें कि दी गई स्ट्रिंग एक वैध संख्या है या नहीं

    अवधारणा यह मान्य करना चाहिए कि दी गई स्ट्रिंग संख्यात्मक है। उदाहरण इनपुट - str = 12.5 आउटपुट - true इनपुट - str = def आउटपुट - false इनपुट - str = 2e5 आउटपुट - true इनपुट - 10e4.4 आउटपुट - false विधि कोड में निम्नलिखित मामलों को संभालना होगा: अग्रणी और अनुगामी सफेद स्थानों को अनदेखा करें। शुरुआत

  1. C++ में जांचें कि दिया गया बाइनरी ट्री हीप है या नहीं C++ में जांचें कि दिया गया बाइनरी ट्री हीप है या नहीं

    अवधारणा दिए गए बाइनरी ट्री के संबंध में, हमें यह सत्यापित करना होगा कि इसमें हीप गुण है या नहीं। बाइनरी ट्री को हीप होने के लिए निम्नलिखित दो शर्तों को पूरा करना होगा: बाइनरी ट्री एक पूर्ण ट्री होना चाहिए (यानी अंतिम स्तर को छोड़कर सभी स्तर भरे हुए हों)। बाइनरी ट्री के प्रत्येक नोड का मान उसके चाइल

  1. C++ में जांचें कि दिया गया बाइनरी ट्री सम-ट्री है या नहीं C++ में जांचें कि दिया गया बाइनरी ट्री सम-ट्री है या नहीं

    यहां हम देखेंगे कि बाइनरी ट्री सम-ट्री (SumTree) है या नहीं, इसकी जांच कैसे करें। अब सवाल यह है कि सम-ट्री क्या है। एक सम-ट्री एक बाइनरी ट्री है जहां एक नोड अपने बच्चों के योग का मान रखता है। ट्री का रूट उसके नीचे के सभी तत्वों का पूरा योग रखता है। यह सम-ट्री का एक उदाहरण है -इसे जांचने के लिए, हम ए