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

सबसे बड़ा अंतराल ज्ञात कीजिए जिसमें C++ में दिए गए N पूर्णांकों में से ठीक एक है

मान लीजिए कि हमारे पास N विशिष्ट पूर्णांकों की एक सरणी है। हमें एक अंतराल [एल, आर] में अधिकतम तत्व को इस तरह खोजना होगा कि अंतराल में दिए गए एन पूर्णांकों में से एक हो और 1 <=एल <=आर <=10 5

तो अगर सरणी Arr =[5, 10, 200] की तरह है, तो आउटपुट 99990 है। तो सभी संभावित अंतराल [1, 9], [6, 99] और [11, 100000] हैं। पिछले वाले में अधिकतम पूर्णांक हैं जैसे 99990

विचार सरल है। हम उस तत्व को ठीक कर देंगे जिसे हम चाहते हैं कि हमारा अंतराल शामिल हो। अब, हम देखेंगे कि हम अन्य तत्वों को ओवरलैप किए बिना अपने अंतराल को बाएँ और दाएँ कैसे बढ़ा सकते हैं। तो हमें पहले सरणी को क्रमबद्ध करना होगा, फिर एक निश्चित तत्व के लिए, हम पिछले और अगले तत्व का उपयोग करके अंत निर्धारित करते हैं। हम कोने के मामलों का ध्यान रखेंगे। इसलिए जब हम पहले और आखिरी इंटरवल को फिक्स कर रहे होते हैं। इस तरह प्रत्येक तत्व i के लिए, हम अंतराल की अधिकतम लंबाई पाते हैं।

उदाहरण

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int maximumSize(vector<int>& vec, int n) {
   vec.push_back(0);
   vec.push_back(100001);
   n += 2;
   sort(vec.begin(), vec.end());
   int max_value = 0;
   for (int i = 1; i < n - 1; i++) {
      int Left = vec[i - 1] + 1;
      int Right = vec[i + 1] - 1;
      int count = Right - Left + 1;
      max_value = max(max_value, count);
   }
   return max_value;
}
int main() {
   vector<int> v;
   v.push_back(200);
   v.push_back(10);
   v.push_back(5);
   int n = v.size();
   cout << "Maximum Size is: " << maximumSize(v, n);
}

आउटपुट

Maximum Size is: 99990

  1. C++ में 2, 3 और 5 का सबसे बड़ा गुणज ज्ञात कीजिए

    इस समस्या में, हमें आकार N का एक सरणी arr[] दिया जाता है जिसमें केवल एकल अंक होते हैं। हमारा काम है 2, 3 और 5 का सबसे बड़ा गुणज खोजना । समस्या को समझने के लिए एक उदाहरण लेते हैं, Input : arr[] = {1, 0, 5, 2} Output : 510 स्पष्टीकरण - The number 510 is divisible by all 2, 3, 5. समाधान दृष्टिकोण

  1. C++ में दी गई संख्या N के भाजक में सबसे बड़ी अच्छी संख्या ज्ञात कीजिए

    इस समस्या में, हमें एक संख्या N दी जाती है। हमारा कार्य दिए गए संख्या N के भाजक में सबसे बड़ी अच्छी संख्या ज्ञात करना है। । एक अच्छी संख्या2। समस्या को समझने के लिए एक उदाहरण लेते हैं, Input : N = 15 Output : 15 स्पष्टीकरण - Divisors of 15 : 1, 3, 5, 15. समाधान दृष्टिकोण समस्या का एक सरल समाधा

  1. किसी दिए गए बाइनरी ट्री में सबसे बड़ा BST सबट्री खोजें - C++ में 1 सेट करें

    इस समस्या में हमें एक बाइनरी ट्री BT दिया जाता है। हमारा काम है किसी दिए गए बाइनरी ट्री में सबसे बड़ा BST सबट्री ढूंढना । बाइनरी ट्री एक विशेष डेटा संरचना है जिसका उपयोग डेटा भंडारण उद्देश्यों के लिए किया जाता है। बाइनरी ट्री की एक विशेष शर्त होती है कि प्रत्येक नोड में अधिकतम दो बच्चे हो सकते हैं।