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

C++ में सबसे बड़े ज्यामितीय माध्य वाला सबसेट खोजें


यहां हमारे पास कुछ तत्वों के साथ एक सरणी A है। हमारा कार्य वह सबसेट ढूंढना है जहां ज्यामितीय माध्य अधिकतम हो। मान लीजिए A = [1, 5, 7, 2, 0], तो सबसे बड़े ज्यामितीय माध्य वाला सबसेट [5, 7] होगा।

इसे हल करने के लिए, हम एक ट्रिक का पालन करेंगे, हम माध्य नहीं ढूंढेंगे, क्योंकि हम जानते हैं कि सबसे बड़े दो तत्व सबसे बड़ा ज्यामितीय माध्य बनाएंगे, इसलिए सबसे बड़े दो तत्वों को सबसेट के रूप में लौटाया जाएगा।

उदाहरण

#include <iostream> 
using namespace std; 

void largestGeoMeanSubset(int arr[], int n) { 
    if (n < 2) { 
        cout << "Very few number of elements"; 
        return; 
    } 
    int max = INT_MIN, second_max = INT_MIN; 
    for (int i = 0; i < n ; i ++) { 
        if (arr[i] > max) { 
            second_max = max; 
            max = arr[i]; 
        }else if (arr[i] > second_max) 
            second_max = arr[i]; 
    } 
    cout << second_max << ", "<< max; 
} 

int main() { 
    int arr[] = {1, 5, 7, 2, 0}; 
    int n = sizeof(arr)/sizeof(arr[0]); 
    largestGeoMeanSubset(arr, n); 
}

आउटपुट

5, 7

  1. - C++ में दिए गए अंतर वाली जोड़ी ढूंढें

    समस्या विवरण एक सरणी A दी गई है जिसमें n विभिन्न तत्व हैं। हमें सरणी से एक जोड़ी (x, y) ढूंढनी है जिससे x और y का अंतर दिए गए अंतर d के बराबर हो। उदाहरण के लिए, यदि सरणी A = [10, 15, 26, 30, 40, 70] है और दिया गया अंतर 30 है, तो जोड़ियां (10, 40) और (30, 70) होंगी। हल दृष्टिकोण इस समस्या को हल करन

  1. - C++ में डुप्लिकेट तत्वों वाली सरणी में फिक्स्ड पॉइंट ढूंढें

    समस्या विवरण एक क्रमबद्ध सरणी में फिक्स्ड पॉइंट वह तत्व है जिसका मान उसके सूचकांक के बराबर होता है। सरणी में नकारात्मक संख्याएं और डुप्लिकेट तत्व हो सकते हैं। यदि फिक्स्ड पॉइंट मौजूद है तो उसका मान वापस करें, अन्यथा -1 वापस करें। हल दृष्टिकोण बाइनरी खोज का उपयोग करके O(log n) समय में हल करें। डुप्

  1. - C++ में सरणी में अधिकतम GCD वाली जोड़ी ढूंढना

    मान लीजिए हमारे पास धनात्मक पूर्णांकों की एक सरणी है। हमारा कार्य सरणी से पूर्णांकों की जोड़ी ढूंढना है, जहां GCD मान अधिकतम है। मान लीजिए A = {1, 2, 3, 4, 5}, तो आउटपुट 2 है। जोड़ी (2, 4) का GCD 2 है, अन्य GCD मान 2 से कम हैं।इस समस्या को हल करने के लिए, हम एक काउंट सरणी बनाए रखेंगे जो प्रत्येक तत्