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

C++ में प्रत्येक एक्सेस के बाद अधिकतम घटने पर सरणी से अधिकतम मान


इस समस्या में, हमें एक सरणी arr[] और एक पूर्णांक M दिया गया है। हमारा कार्य C++ में एक प्रोग्राम बनाना है ताकि प्रत्येक एक्सेस के बाद अधिकतम घटने पर सरणी से अधिकतम मान ढूंढा जा सके।

समस्या विवरण

अधिकतम ढूंढने के लिए, हम सरणी से अधिकतम तत्व ढूंढेंगे और प्रत्येक पुनर्प्राप्ति के बाद इसे -1 से घटाएंगे, M बार।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: arr[] = {3, 6, 8, 9} M = 2

आउटपुट: 17

व्याख्या

पहली पुनरावृत्ति, अधिकतम = 9, योग = 9, अद्यतन सरणी = {3, 6, 8, 8}

दूसरी पुनरावृत्ति, अधिकतम = 8, योग = 9+8 = 17, अद्यतन सरणी = {3, 6, 7, 8}

समाधान दृष्टिकोण

एक सरल समाधान मैक्स हीप का उपयोग करना है जिसमें मैक्स तत्व रूट पर होगा। फिर रूट को पॉप करें, इसे 1 से घटाएं, फिर तत्व को फिर से डालें। यह पॉप और इंसर्ट M बार किया जाता है। प्रत्येक पॉप ऑपरेशन के लिए, हम तत्व को योग तत्व में जोड़ेंगे और M पुनरावृत्तियों के बाद योग प्रिंट करेंगे।

उदाहरण

#include <bits/stdc++.h> using namespace std; int getSum(int arr[], int N, int M) {    int sumVal = 0;    priority_queue<int> heap;    for (int i = 0; i < N; i++)       heap.push(arr[i]);    while (M--) {       int maximumVal = heap.top();       sumVal += maximumVal;       heap.pop();       heap.push(maximumVal - 1);    }    return sumVal; } int main() {    int arr[] = { 3, 6, 8, 9};    int M = 2;    int N = sizeof(arr) / sizeof(arr[0]);    cout<<"प्रत्येक एक्सेस के बाद अधिकतम घटने पर सरणी से अधिकतम है "<<getSum(arr, N,M); }

आउटपुट

प्रत्येक एक्सेस के बाद अधिकतम घटने पर सरणी से अधिकतम है 17

  1. - C++ में ऐरे में अधिकतम संतुलन योग

    समस्या कथन एक ऐरे arr[] दिया गया है। इंडेक्स i के लिए arr[] में अधिकतम प्रीफिक्स योग का मान ढूंढें जो सफिक्स योग भी हो। उदाहरण यदि इनपुट ऐरे है - Arr[] = {1, 2, 3, 5, 3, 2, 1} तो आउटपुट 11 है - प्रीफिक्स योग = arr[0..3] = 1 + 2 + 3 + 5 = 11 और सफिक्स योग = arr[3..6] = 5 + 3 + 2 + 1 = 11 एल्गोरिदम

  1. - C++ में दिए गए वस्तुओं की सरणी से अधिकतम ऊंचाई का पिरामिड ज्ञात करें

    मान लीजिए हमारे पास n वस्तुओं की एक सरणी है। प्रत्येक वस्तु की चौड़ाई W[i] है। हमें उन्हें पिरामिड के तरीके में व्यवस्थित करना है जैसे - i-वें स्तर की कुल चौड़ाई (i+1)-वें स्तर से कम हो i-वें स्तर में वस्तुओं की कुल संख्या (i+1)-वें स्तर से कम हो उदाहरण के लिए, यदि चौड़ाई [40, 100, 20, 30] है, तो

  1. - C++ में ऐरे के बिटवाइज OR को अधिकतम करना

    समस्या कथन N पूर्णांकों का एक ऐरे दिया गया है। ऐरे के सभी तत्वों के बिटवाइज OR को एक कार्य करके अधिकतम करना है। कार्य ऐरे के किसी भी तत्व को अधिकतम k बार दिए गए पूर्णांक x से गुणा करना है। यदि इनपुट ऐरे है {4, 3, 6, 1}, k = 2 और x = 3 तो प्राप्त किया जा सकने वाला अधिकतम मान 55 है। एल्गोरिदम 1. एक