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

सरणी से अधिकतम उत्पाद जैसे कि उत्पाद में सभी दोहराए जाने वाले तत्वों का आवृत्ति योग C++ . में 2 * k से कम या उसके बराबर हो

इस ट्यूटोरियल में, हम एरे से अधिकतम उत्पाद खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे, जैसे कि उत्पाद में सभी दोहराए जाने वाले तत्वों का फ़्रीक्वेंसी योग 2 * k से कम या उसके बराबर हो।

इसके लिए हमें एक सरणी और एक पूर्णांक k प्रदान किया जाएगा। हमारा काम सरणी से अधिकतम उत्पाद खोजना है, यह देखते हुए कि सभी अंकों की आवृत्ति योग 2 * k से छोटा या उसके बराबर होना चाहिए।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
#define ll long long int
//returning maximum product value
ll maxProd(int arr[], int n, int k) {
   ll product = 1;
   unordered_map<int, int> s;
   sort(arr, arr + n);
   for (int i = 0; i < n; i++) {
      if (s[arr[i]] == 0) {
         product = product * arr[i];
      }
      //storing values in hash map
      s[arr[i]] = s[arr[i]] + 1;
   }
   for (int j = n - 1; j >= 0 && k > 0; j--) {
      if ((k > (s[arr[j]] - 1)) && ((s[arr[j]] - 1) > 0)){
         product *= pow(arr[j], s[arr[j]] - 1);
         k = k - s[arr[j]] + 1;
         s[arr[j]] = 0;
      }
      if (k <= (s[arr[j]] - 1) && ((s[arr[j]] - 1) > 0)) {
         product *= pow(arr[j], k);
         break;
      }
   }
   return product;
}
int main() {
   int arr[] = { 5, 6, 7, 8, 2, 5, 6, 8 };
   int n = sizeof(arr) / sizeof(arr[0]);
   int k = 2;
   cout << maxProd(arr, n, k);
   return 0;
}

आउटपुट

161280

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

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

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

    मान लीजिए कि हमारे पास एक सरणी ए है, इसमें एन तत्व हैं। हमारा कार्य सरणी A को दो उप-सरणी में विभाजित करना है, ताकि प्रत्येक उप-सरणी का योग समान हो। मान लीजिए कि सरणी A =[2, 3, 4, 1, 4, 5], आउटपुट 1 है, इसलिए 1 से पहले और 1 के बाद के उप-सरणी लिए जाते हैं। [2, 3, 4], और [4, 5]। इस समस्या को हल करने क

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

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