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

C++ में अधिकतम और न्यूनतम के अंतर को जोड़ने, हटाने और वापस करने के लिए प्रश्न

इस समस्या में, हमें Q प्रश्न दिए जाते हैं। ये तीन प्रकार के होते हैं, ये हैं -

  • प्रश्न 1:सूची में नंबर N जोड़ें।

  • प्रश्न 2:सूची से संख्या N को हटा दें।

  • प्रश्न 3:सूची के न्यूनतम और अधिकतम तत्व का अंतर लौटाएं।

हमारा काम C++ में अधिकतम और न्यूनतम के अंतर को जोड़ने, हटाने और वापस करने के लिए प्रश्नों को हल करने के लिए एक प्रोग्राम बनाना है।

समस्या का विवरण

हमें प्रश्नों की एक क्यू संख्या दी जाएगी जो हम सूची में प्रदर्शन करेंगे। सूची के अधिकतम और न्यूनतम तत्व के अंतर को जोड़ने, हटाने और खोजने के लिए 3 प्रकार के प्रश्न हैं। जिसका उपयोग करके हम पहले तत्वों की सूची तैयार करेंगे और फिर सूची के अधिकतम और न्यूनतम तत्वों के बीच अंतर का Query 3 मान ज्ञात करेंगे।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट :क्यू =6

प्रश्न (1, 4)

प्रश्न (1, 9)

प्रश्न (1, 6)

प्रश्न (2, 4)

प्रश्न (1, 3)

प्रश्न (3)

आउटपुट :6

स्पष्टीकरण

अंत में, सूची {9, 6, 3} होगी।

अधिकतम -> 9

न्यूनतम -> 3

अंतर -> 6

समाधान दृष्टिकोण

समस्या को हल करने का एक सरल तरीका प्रत्येक प्रश्न के प्रत्यक्ष समाधान का उपयोग करना है। इन चरणों का पालन करके-

  • एक ऐरे को इनिशियलाइज़ करें।

  • क्वेरी प्रकार 1 के लिए, सरणी में एक तत्व जोड़ें

  • क्वेरी टाइप 2 के लिए, ऐरे से किसी एलीमेंट को हटा दें

  • क्वेरी प्रकार 3 के लिए, अधिकतम और न्यूनतम के बीच का अंतर खोजें, और मान वापस करें।

उदाहरण

#include <iostream>
using namespace std;
void solveQuerry(int type, int item){
   int list[100];
   static int index = 0;
   if(type == 1){
      list[index] = item;
      index++;
   }
   else if(type == 2){
      for(int i = 0; i <= index; i++)
      if(list[i] == item ){
         list[i] = 0;
         break;
         }
      }
      else if(type == 3){
         int max = -100, min = 100;
      for(int i = 0; i< index; i++){
         if(list[i] == 0)
            i++;
         if(list[i] > max)
            max = list[i];
         if(list[i] < min)
            min = list[i];
      }
   cout<<"The difference between the maximum and minimum elements of the list is "<<(max - min);
   }
}
int main() {
   int Q = 6;
   int query[Q][2] = {{1, 5}, {1, 9}, {1, 6}, {2, 4}, {1, 3}, {3, 0}};
   for(int i = 0; i< Q; i++){
      solveQuerry(query[i][0], query[i][1]);
   }
}

आउटपुट

The difference between the maximum and minimum elements of the list is 6

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

C++ में सेल्फ-बैलेंसिंग बाइनरी सर्च ट्री का कार्यान्वयन सेट का उपयोग करके किया जाता है।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
set<int> myList;
void solveQuerry(int type, int num){
   if(type == 1){
      myList.insert(num);
   }
   else if(type == 2){
      myList.erase(num);
   }
   else if(type == 3){
      int max = *(myList.rbegin());
      int min = *(myList.begin());
      cout<<"The difference between the maximum and minimum elements of the list is "<<(max - min);
   }
}
int main() {
   int Q = 6;
   int query[Q][2] = {{1, 5}, {1, 9}, {1, 6}, {2, 4}, {1, 3}, {3, 0}};
   for(int i = 0; i< Q; i++){
      solveQuerry(query[i][0], query[i][1]);
   }
}

आउटपुट

The difference between the maximum and minimum elements of the list is 6

  1. C++ में size_t और int में क्या अंतर है?

    यहां हम देखेंगे कि C++ में size_t और int में क्या अंतर हैं। यदि हम मानक पर विचार करें, तो दोनों 16 बिट आकार के पूर्णांक हैं। एक सामान्य 64-बिट सिस्टम पर, size_t 64-बिट होगा, लेकिन अहस्ताक्षरित int 32 बिट होगा। इसलिए हम उनका परस्पर उपयोग नहीं कर सकते। एक मानक अनुशंसा यह है कि size_t एक अहस्ताक्षरित

  1. C++ में int और long में क्या अंतर है?

    इंट डेटाटाइप int का उपयोग पूर्णांक मानों को संग्रहीत करने के लिए किया जाता है। यह हस्ताक्षरित या अहस्ताक्षरित हो सकता है। डेटाटाइप इंट 32-बिट या 4 बाइट्स का है। किसी मान को संग्रहीत करने के लिए लंबे समय से कम मेमोरी क्षेत्र की आवश्यकता होती है। कीवर्ड int का उपयोग पूर्णांक चर घोषित करने के लिए किया

  1. सी ++ में परिभाषा और घोषणा के बीच क्या अंतर है?

    सी ++ में, घोषणा और परिभाषा अक्सर भ्रमित होती है। डिक्लेरेशन का मतलब (सी में) है कि आप कंपाइलर को अपने प्रोग्राम में टाइप, साइज और फंक्शन डिक्लेरेशन के मामले में, किसी वेरिएबल के इसके पैरामीटर्स के टाइप और साइज, या यूजर-डिफाइंड टाइप या फंक्शन के बारे में बता रहे हैं। घोषणा के मामले में किसी भी चर के