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

एक सरणी में अधिकतम जो सी ++ में क्रमबद्ध एक और सरणी बना सकता है

हमें संख्याओं की एक सरणी दी गई है जैसे Arr1[] और दूसरी सरणी Arr2[] समान या भिन्न लंबाई की। Arr1[] में तत्वों को आरोही क्रम में क्रमबद्ध किया गया है, जैसे कि एक एकल तत्व को क्रमबद्ध नहीं किया जाता है। हमें दूसरी सरणी Arr2 [] से तत्व को खोजना होगा जैसे कि यह Arr1 [] के गलत तरीके से रखे गए तत्व को प्रतिस्थापित कर सकता है और इसे क्रमबद्ध कर सकता है। साथ ही, कई विकल्प उपलब्ध होने पर Arr2[] से चुना गया तत्व अधिकतम होना चाहिए।

इनपुट

Arr1[]= { 1,3,5,7,2,11 }, Arr2[]= { 4,8,7,10,9 }

आउटपुट

Maximum element that can make Arr1 sorted: 10

स्पष्टीकरण - Arr2[] में नंबर जो Arr1[] को सॉर्ट कर सकते हैं - 8,9,10 क्योंकि वे सभी>=7 और <=11 हैं। इनमें से 10 अधिकतम है।

नया Arr1[] { 1,3,5,7,10,11 } बन जाता है और क्रमबद्ध हो जाता है।

इनपुट

Arr1[]= { 12,5,22,17 }, Arr2[]= { 4,8,7,10,9 }

आउटपुट

No such element.

स्पष्टीकरण − Arr2[] में कोई भी umbers नहीं हैं जो>=12 और <=22 हैं।

Arr1[] को क्रमबद्ध नहीं किया जा सकता।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • Arrays arr1[] और arr2[] का उपयोग संख्याओं को संग्रहीत करने के लिए किया जाता है। Arr1[] एक तत्व को छोड़कर आरोही क्रम में क्रमबद्ध है।

  • फ़ंक्शन सॉर्टमैक्स (int arr1 [], int arr2 [], int n1, int n2) दोनों सरणियों और उनकी लंबाई और अद्यतन arr1 [] लेता है यदि arr2 [] में तत्व पाया जाता है जो अधिकतम है और एआर में गलत तत्व को भी बदल सकता है []

  • arr1[] में वैरिएबल wpos में गलत रखे गए एलिमेंट का स्टोर इंडेक्स, शुरू में -1।

  • maxx का उपयोग arr2 [] के उन तत्वों में से अधिकतम को संग्रहीत करने के लिए किया जाता है जो arr1 [] के गलत तरीके से रखे गए तत्व को बदल सकते हैं और इसे क्रमबद्ध कर सकते हैं।

  • पहले ट्रैवर्स arr1 [] पर और गलत तत्व ढूंढें जैसे। अगर गिरफ्तार [i] <गिरफ्तारी [i-1]। इंडेक्स को i के रूप में स्टोर करें।

  • अब arr2[] ट्रैवर्स करें और उन तत्वों को खोजें जिन्हें arr1[wpos-1] andarr[wpos+1] के बीच रखा जा सकता है। साथ ही यदि ऐसा कोई तत्व मौजूद है तो उसकी तुलना ऐसे अधिकतम तत्व से करें।

  • अधिकतम अपडेट करें।

  • अंत में arr1[wpos] को maxx से बदलें।

  • यदि ऐसा कोई तत्व पाया जाता है तो रिटर्न मैक्स, अन्यथा -1 लौटाएं।

  • यदि कोई तत्व नहीं मिलता है तो एक संदेश प्रदर्शित करें।

  • अन्य प्रिंट क्रमबद्ध arr1[].

उदाहरण

// C++ program to make array sorted
#include <bits/stdc++.h>
using namespace std;
int sortMax(int arr1[], int arr2[], int n1, int n2) //making arr1 sorted{
   int wpos=-1;
   int maxx=-1;
   int i,j;
   for(i=0;i<n1;i++)
   if(arr1[i]<arr1[i-1])
      wpos=i;
   for(j=0;j<n2;j++){
      if(arr2[j]>=arr1[wpos-1] && arr2[j]<=arr1[wpos+1])
         if(arr2[j]>=maxx)
            maxx=arr2[j];
   }
   if(maxx!=-1)
      arr1[wpos]=maxx;
   return maxx;
}
int main(){
   int arr1[] = { 1, 3, 7, 4, 10 };
   int arr2[] = { 2, 1, 6, 8, 9 };
   int len1 = sizeof(arr1) / sizeof(arr1[0]);
   int len2 = sizeof(arr2) / sizeof(arr2[0]);
   int res=sortMax(arr1, arr2, len1, len2);
   if(res==-1)
      cout<<"No swap possible! No such element!";
   else{
      cout<<"Maximum in arr2[] to make arr1[] sorted:"<<res;
      cout<<endl<<"Arr1[]:";
      for(int i=0;i<len1;i++)
         cout<<arr1[i]<<" ";
         cout<<endl<<"Arr2[]:";
      for(int i=0;i<len2;i++)
         cout<<arr2[i]<<" ";
   }
}

आउटपुट

Maximum in arr2[] to make arr1[] sorted:9
Arr1[]:1 3 7 9 10
Arr2[]:2 1 6 8 9

  1. एक सरणी में अभाज्य संख्या K ज्ञात करें जैसे कि (A[i]% K) C++ में अधिकतम हो

    मान लीजिए कि हमारे पास n पूर्णांकों के साथ एक सरणी A है। हमें एक तत्व K को खोजना है जैसे कि K अभाज्य है, और A[i] mod K, K के सभी संभावित मानों में से सभी मान्य i के लिए अधिकतम है। यदि ऐसी कोई संख्या नहीं मिलती है, तो -1 लौटाएं। उदाहरण के लिए, यदि ए =[2, 10, 15, 7, 6, 8, 13], तो आउटपुट 13 होगा। तीन अ

  1. C++ में दी गई संख्या के अंकों का उपयोग करके बनाई जा सकने वाली अधिकतम संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास कई n अंक हैं। हमें वह अधिकतम संख्या ज्ञात करनी है जो उस संख्या के अंकों के सभी अंकों का प्रयोग करके प्राप्त की जा सकती है। अतः यदि संख्या 339625 कहें तो अधिकतम संख्या 965332 हो सकती है। समस्या से, हम देख सकते हैं कि हम अंकों को गैर-बढ़ते क्रम में आसानी से सॉर्ट कर सकते हैं, फ

  1. फ़ंक्शन जिन्हें C++ में ओवरलोड नहीं किया जा सकता है

    C++ में हम फंक्शन्स को ओवरलोड कर सकते हैं। लेकिन कई बार ओवरलोडिंग नहीं होती है। इस खंड में, हम देखेंगे कि विभिन्न मामले क्या हैं, जिनमें हम कार्यों को अधिभारित नहीं कर सकते हैं। जब फ़ंक्शन सिग्नेचर समान होते हैं, केवल रिटर्न प्रकार अलग होता है, तो हम फ़ंक्शन को ओवरलोड नहीं कर सकते। int my_func(