কম্পিউটার

C++ এ সর্বোচ্চ এবং সর্বনিম্ন পার্থক্য যোগ, অপসারণ এবং ফেরত দেওয়ার জন্য প্রশ্ন


এই সমস্যায়, আমাদের Q প্রশ্ন দেওয়া হয়। এগুলি তিন প্রকার, তারা হল −

  • প্রশ্ন 1:তালিকায় N নম্বর যোগ করুন।

  • প্রশ্ন 2:তালিকা থেকে N নম্বর সরান।

  • প্রশ্ন 3:তালিকার সর্বনিম্ন এবং সর্বোচ্চ উপাদানের পার্থক্য ফেরত দিন।

আমাদের কাজ হল C++ এ সর্বাধিক এবং সর্বনিম্ন পার্থক্য যোগ, অপসারণ এবং ফেরত দেওয়ার জন্য প্রশ্নের সমাধান করার জন্য একটি প্রোগ্রাম তৈরি করা।

সমস্যা বর্ণনা

আমাদের একটি Q নম্বর দেওয়া হবে যা আমরা তালিকায় সম্পাদন করব। তালিকার সর্বোচ্চ এবং সর্বনিম্ন উপাদানের পার্থক্য যোগ, অপসারণ এবং খুঁজে বের করার জন্য 3 ধরনের প্রশ্ন রয়েছে। যা ব্যবহার করে আমরা প্রথমে উপাদানগুলির তালিকা তৈরি করব এবং তারপর তালিকার সর্বাধিক এবং সর্বনিম্ন উপাদানগুলির মধ্যে পার্থক্যের ক্যোয়ারী 3 মানটি খুঁজে বের করব৷

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট :Q =6

প্রশ্ন (1, 4)

প্রশ্ন (1, 9)

প্রশ্ন (1, 6)

প্রশ্ন (2, 4)

প্রশ্ন (1, 3)

প্রশ্ন (3)

আউটপুট :৬

ব্যাখ্যা

শেষ পর্যন্ত, তালিকাটি হবে {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() পদ্ধতি ব্যবহার করে অ্যাক্সেস করা হবে)। এবং সর্বনিম্ন উপাদানটি শুরুতে থাকবে (begin() পদ্ধতি ব্যবহার করে অ্যাক্সেস করা হবে।

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++ এ সমান হয়?

  2. C++ এ size_t এবং int এর মধ্যে পার্থক্য কি?

  3. C++ এ int এবং লং এর মধ্যে পার্থক্য কি?

  4. C++ এ একটি সংজ্ঞা এবং একটি ঘোষণার মধ্যে পার্থক্য কী?