Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

दो तत्वों के बीच अधिकतम अंतर इस प्रकार है कि C . में छोटी संख्या के बाद बड़ा तत्व दिखाई देता है


हमें N आकार के पूर्णांकों की एक सरणी दी गई है। सरणी में यादृच्छिक क्रम में पूर्णांक होते हैं। कार्य दो तत्वों के बीच अधिकतम अंतर ज्ञात करना है जैसे कि छोटी संख्या के बाद बड़ा तत्व दिखाई देता है। यानी Arr[j]-Arr[i] अधिकतम ऐसा है कि j>i.

इनपुट

Arr[] = { 2,1,3,8,3,19,21}.

आउटपुट −दो तत्वों के बीच अधिकतम अंतर इस प्रकार है कि छोटी संख्या के बाद बड़ा तत्व दिखाई देता है − 20

स्पष्टीकरण - अधिकतम अंतर 21 और 1 के बीच है और 21 सरणी में 1 के बाद दिखाई देता है।

इनपुट

Arr[] = {18, 2,8,1,2,3,2,6 }.

आउटपुट −दो तत्वों के बीच अधिकतम अंतर इस प्रकार है कि छोटी संख्या के बाद बड़ा तत्व दिखाई देता है - 6

स्पष्टीकरण - अधिकतम अंतर 8 और 2 के बीच है और 8 सरणी में 2 के बाद दिखाई देता है।

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

  • पूर्णांकों की एक सरणी घोषित करें जिसमें आयत की भुजाओं के जोड़े हों।( Arr[] )

  • सरणी के आकार को संग्रहीत करने के लिए एक चर बनाएँ। (एन)

  • फ़ंक्शन maxArea(int arr[],int n) आयत के लिए अधिकतम क्षेत्र की गणना करने के लिए प्रयोग किया जाता है। यह एक इनपुट ऐरे और उसके आकार को तर्कों के रूप में लेता है।

  • मैक्सएरिया () के अंदर हमने एक ऐरे डिम [2] घोषित किया है, दो स्टोर उच्चतम दो पक्षों को सॉर्ट किए गए सरणी (अवरोही क्रम में) एआर [] को पार करने के बाद मिला।

  • जैसा कि arr[] को अवरोही क्रम में क्रमबद्ध किया गया है, उच्चतम 4 पक्ष शुरुआत में होने चाहिए। हम arr[] को पुनरावृत्त करेंगे ताकि पक्षों का एक जोड़ा मिल जाए।

  • डिम [] को पहले 0 से प्रारंभ करें।

  • जबकि लूप के अंदर हम शर्त रखते हैं कि यह j<2 तक जारी रहे कि dim[0] और dim[1] के लिए कोई मान नहीं मिला है या arr[] के अंत तक पहुंच गया है। (मैं<एन)।

  • यदि ऐसी भुजाओं का एक जोड़ा मिलता है, ( if(arr[i]==arr[i+1]) ), तो इसे dim[j] में संग्रहित करें और अगले पक्ष के लिए वृद्धि j करें।

  • परिणाम को dim[0] और dim[1] के गुणनफल के रूप में लौटाएं।

  • नोट - सॉर्ट (arr,n) गिरफ्तारी को अवरोही क्रम में सॉर्ट करना चाहिए।

उदाहरण

#include <stdio.h>
int maxDiff(int arr[], int n){
   // Maximum difference found so far
   int MD = arr[1] - arr[0];
   // Minimum number visited so far
   int min = arr[0];
   for(int i = 1; i < n; i++){
      if (arr[i] - min > MD)
         MD = arr[i] - min;
      if (arr[i] < min)
         min = arr[i];
   }
   return MD;
}
/* Driver program to test above function */
int main(){
   int arr[] = {2,5,7,3,4,12};
   int n=6;
   // Function calling
   printf("Maximum difference is : %d ",maxDiff(arr, n));
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

The maximum difference between two elements such that the larger element appears after the smaller number : 10

  1. सर्कुलर सरणी में अधिकतम योग जैसे कि कोई भी दो तत्व सी ++ में आसन्न नहीं हैं

    इस समस्या में, हमें एक वृत्ताकार सरणी cirArr[] दी गई है। हमारा काम सर्कुलर सरणी में अधिकतम योग खोजने के लिए एक प्रोग्राम बनाना है जैसे कि कोई भी दो तत्व सी ++ में आसन्न नहीं हैं। समस्या का विवरण वृत्ताकार सरणी के लिए, हमें सरणी के तत्वों का अधिकतम योग ज्ञात करना होगा जैसे कि आसन्न तत्वों को नहीं लि

  1. ऐसे तत्वों की अधिकतम संख्या ज्ञात कीजिए जिनका निरपेक्ष अंतर C++ में 1 से कम या बराबर हो

    मान लीजिए कि हमारे पास n तत्वों की एक सरणी है। हमें सरणी से चयन करने के लिए तत्वों की अधिकतम संख्या का पता लगाना है, जैसे कि चुने हुए तत्वों में से किन्हीं दो के बीच पूर्ण अंतर 1 से कम या बराबर है। इसलिए यदि सरणी [2, 2, 3, 4, की तरह है, 5], तो तत्व 3 होगा, इसलिए अधिकतम गिनती वाला क्रम 2, 2, 3 है। 0

  1. एक सरणी तत्व खोजें जैसे कि सभी तत्व इसके द्वारा c++ . का उपयोग करके विभाज्य हैं

    विचार करें कि हमारे पास कुछ तत्वों के साथ एक सरणी ए है। हमें A से एक अवयव इस प्रकार ज्ञात करना है कि सभी तत्वों को इससे विभाजित किया जा सके। मान लीजिए कि ए [15, 21, 69, 33, 3, 72, 81] जैसा है, तो तत्व 3 होगा, क्योंकि सभी संख्याएं 3 से विभाज्य हो सकती हैं। इस समस्या को हल करने के लिए, हम ए में सबसे