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

C++ में K निषेध के बाद सरणी योग को अधिकतम करें

समस्या कथन

आकार n और एक संख्या k की एक सरणी को देखते हुए। हमें एक सरणी k को कई बार संशोधित करना होगा।

संशोधित सरणी का अर्थ है कि प्रत्येक ऑपरेशन में हम किसी भी सरणी तत्व arr [i] को अस्वीकार करके प्रतिस्थापित कर सकते हैं यानी arr [i] =-arr [i]। कार्य इस ऑपरेशन को इस तरह से निष्पादित करना है कि k संचालन के बाद, एक सरणी का योग अधिकतम होना चाहिए।

यदि इनपुट arr[] ={7, -3, 5, 4, -1} तो अधिकतम योग 20

होगा
  • पहला नकारात्मक -3। अब सरणी बन जाती है {7, 3, 5, 4, -1}
  • नकारात्मक -1। अब सरणी बन जाती है {7, 3, 5, 4, 1}

एल्गोरिदम

1. Replace the minimum element arr[i] in array by -arr[i] for current operation
2. Once minimum element becomes 0, we don’t need to make any more changes. In this way we can make sum of array maximum after K operations

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int getMaxSum(int *arr, int n, int k){
   for (int i = 1; i <= k; ++i) {
      int minValue = INT_MAX;
      int index = -1;
      for (int j = 0; j < n; ++j) {
         if (arr[j] < minValue) {
            minValue = arr[j];
            index = j;
         }
      }
      if (minValue == 0) {
         break;
      }
      arr[index] = -arr[index];
   }
   int sum = 0;
   for (int i = 0; i < n; ++i) {
      sum = sum + arr[i];
   }
   return sum;
}
int main(){
   int arr[] = {7, -3, 5, 4, -1};
   int n = sizeof(arr) / sizeof(arr[0]);
   int k = 2;
   cout << "Maximum sum = " << getMaxSum(arr, n, k) << endl;
   return 0;
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है &mnus;

Maximum sum = 20

  1. सी ++ एसटीएल में ऐरे योग

    सरणी एक रैखिक डेटा संरचना है जो समान डेटा प्रकार के तत्वों को निरंतर स्मृति स्थानों में संग्रहीत करती है। सरणी योग सरणी के सभी तत्वों का योग है। सी ++ प्रोग्रामिंग भाषा में कई विधियां हैं जिनके साथ आप सरणी योग पा सकते हैं। शास्त्रीय पद्धति सरणी के सभी तत्वों का योग खोजने की मूल विधि सरणी के तत्वो

  1. सी++ सम ऐरे पहेली

    सरणी एक डेटा संरचना है जो एक ही डेटा प्रकार के कई तत्वों को संग्रहीत करती है। यह मूल्यों के पूरे सेट को एक साथ स्टोर कर सकता है। लेकिन इसकी लंबाई पहले से तय करने की जरूरत है। इस योग सरणी पहेली में, हमें एक निश्चित आकार, मान लीजिए n की एक सरणी A1 दी गई है। इस पहेली को हल करने के लिए, हम S1 नामक एक स

  1. सी ++ में एक सम ऐरे पहेली?

    यहां हम सरणी से संबंधित एक दिलचस्प समस्या देखेंगे। n तत्वों के साथ एक सरणी है। हमें n तत्वों की एक और सरणी बनानी है। लेकिन दूसरी सरणी की i-वें स्थिति i-वें तत्व को छोड़कर पहले सरणी के सभी तत्वों का योग धारण करेगी। और एक बाधा यह है कि हम इस समस्या में घटाव ऑपरेटर का उपयोग नहीं कर सकते हैं। यदि हम घट