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

C में मान और सूचकांक योगों का अधिकतम निरपेक्ष अंतर


हमें पूर्णांकों की एक सरणी दी गई है। कार्य है मान और सूचकांक योगों का अधिकतम निरपेक्ष अंतर निकालना। अर्थात सरणी में प्रत्येक सूचकांक युग्म (i, j) के लिए, हमें |Arr[i] - Arr[j]| + |i - j| की गणना करनी है और अधिकतम ऐसा योग ढूंढना है। यहां |A| का अर्थ A का निरपेक्ष मान है। यदि सरणी में 4 तत्व हैं तो सूचकांक 0, 1, 2, 3 होंगे और अद्वितीय युग्म होंगे ( (0,0), (1,1), (2,2), (3,3), (0,1), (0,2), (0,3), (1,2), (1,3), (2,3) )।

इनपुट

Arr[] = { 1, 2, 4, 5 }

आउटपुट

मान और सूचकांक योगों का अधिकतम निरपेक्ष अंतर: 7

व्याख्या

सूचकांक युग्म और |A[i] - A[j]| + |i - j| निम्नानुसार हैं:

1. (0,0), (1,1), (2,2), (3,3) --------- प्रत्येक के लिए |i-j| 0 है। 2. (0,1) ---------- |1-2| + |0-1| = 1+1 = 2 3. (0,2) ---------- |1-4| + |0-2| = 3+2 = 5 4. (0,3) ---------- |1-5| + |0-3| = 4+3 = 7 5. (1,2) ---------- |2-4| + |1-2| = 2+1 = 3 6. (1,3) ---------- |2-5| + |1-3| = 3+2 = 5 7. (2,3) ---------- |4-5| + |2-3| = 1+1 = 2 ऐसे योग का अधिकतम मान 7 है।

इनपुट

Arr[] = { 10, 20, 21 }

आउटपुट

मान और सूचकांक योगों का अधिकतम निरपेक्ष अंतर: 13

व्याख्या

सूचकांक युग्म और |A[i] - A[j]| + |i - j| निम्नानुसार हैं:

1. (0,0), (1,1), (2,2) --------- प्रत्येक के लिए |i-j| 0 है। 2. (0,1) ---------- |10-20| + |0-1| = 10+1 = 11 3. (0,2) ---------- |10-21| + |0-2| = 11+2 = 13 4. (1,2) ---------- |20-21| + |1-2| = 1+1 = 2 ऐसे योग का अधिकतम मान 13 है।

उपयोग किया गया दृष्टिकोण

  • हम संख्याओं वाली एक पूर्णांक सरणी Arr[] लेते हैं।

  • फ़ंक्शन maxabsDiff(int arr[], int n) मान और सूचकांक योगों का अधिकतम निरपेक्ष अंतर निकालने के लिए उपयोग किया जाता है।

  • हम चर result को 0 से प्रारंभ करते हैं।

  • फॉर लूप के अंदर सरणी के पूर्णांकों को शुरुआत से पार करते हैं।

  • नेस्टेड फॉर लूप में शेष तत्वों को पार करते हैं और तत्व मान और सूचकांकों i, j का निरपेक्ष योग (abs(arr[i] - arr[j]) + abs(i - j)) निकालते हैं और एक चर absDiff में संग्रहीत करते हैं।

  • यदि यह नया परिकलित योग पिछले से अधिक है तो इसे 'result' में संग्रहीत करें।

  • पूरी सरणी पार करने के बाद result लौटाएं।

उदाहरण

#include <stdio.h> #include <math.h> // अधिकतम निरपेक्ष अंतर लौटाने वाला फ़ंक्शन int maxabsDiff(int arr[], int n){     int result = 0;     for (int i = 0; i < n; i++) {         for (int j = i; j < n; j++) {             int absDiff = abs(arr[i] - arr[j]) + abs(i - j);             if (absDiff > result)                 result = absDiff;         }     }     return result; } int main(){     int Arr[] = {1, 2, 4, 1, 3, 4, 2, 5, 6, 5};     printf("मान और सूचकांक योगों का अधिकतम निरपेक्ष अंतर: %d", maxabsDiff(Arr, 10));     return 0; }

आउटपुट

उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:

मान और सूचकांक योगों का अधिकतम निरपेक्ष अंतर: 13
  1. - JavaScript में सबसे बड़ा योग और सबसे छोटा इंडेक्स अंतर

    समस्या JavaScript फ़ंक्शन जो पूर्णांकों की एक सरणी arr को पहले और एकमात्र आर्गुमेंट के रूप में लेता है। हमारे फ़ंक्शन को एक इंडेक्स जोड़ी (i, j) चुननी चाहिए जैसे कि (arr[i] + arr[j]) + (i - j) सरणी में सभी इंडेक्स जोड़ियों में अधिकतम हो। हमारे फ़ंक्शन को फिर अधिकतम मान वापस करना चाहिए। उदाहरण के लि

  1. सेलपैडिंग और सेलस्पेसिंग के बीच अंतर सेलपैडिंग और सेलस्पेसिंग के बीच अंतर

    इस पोस्ट में, हम सेलपैडिंग और सेल स्पेसिंग के बीच अंतर को समझेंगे। सेलपैडिंग यह एक सिंगल सेल से जुड़ा होता है। यह सेल के बॉर्डर और सेल के भीतर के कंटेंट के बीच मौजूद व्हाइट स्पेस को नियंत्रित करने में मदद करता है। सेल पैडिंग का डिफ़ॉल्ट मान 1 है। यह एक प्रभावी मेथड के रूप में उपयोग किया जा

  1. C++ में उस नोड को ढूंढें जिसका X के साथ निरपेक्ष अंतर न्यूनतम मान देता है C++ में उस नोड को ढूंढें जिसका X के साथ निरपेक्ष अंतर न्यूनतम मान देता है

    मान लीजिए हमारे पास एक ट्री है, और सभी नोड्स के वजन और एक पूर्णांक x है। हमें नोड i ढूंढना है, जैसे कि |weight[i] - x| न्यूनतम हो। यदि ग्राफ नीचे की तरह है, और x = 15 आउटपुट 3 होगा। अब विभिन्न नोड्स के लिए, यह नीचे की तरह होगा: नोड 1, |5 – 15| = 10 नोड 2, |10 – 15| = 5 नोड 3, |11 – 15| = 4 नोड 4, |