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

न्यूनतम योग खोजें जैसे कि हर तीन लगातार तत्वों में से एक लिया जाए C++ में

मान लीजिए हमारे पास n तत्वों का एक ऐरे है। कार्य ऐरे से तत्वों का न्यूनतम योग खोजना है। जैसे कि उस ऐरे में हर तीन लगातार तत्वों में से कम से कम एक तत्व चुना जाए। तो यदि ऐरे [1, 2, 3, 6, 7, 1] जैसा है। आउटपुट 4 है। तो यदि हम 3 और 1 चुनते हैं, तो (3 + 1 = 4)। तो लगातार तत्वों के कुछ सब-अर्रे हैं जैसे [1, 2, 3], [2, 3, 6], [3, 6, 7], [6, 7, 1], हमने हर सब-अर्रे से एक तत्व चुना है।

मान लीजिए sum(i) न्यूनतम संभव योग वापस करेगा, जहां arr[i] समाधान का हिस्सा है और अंतिम चुना गया तत्व है। तो हमारा परिणाम sum(i-1), sum(i-2), sum(i-3) का न्यूनतम है। चूंकि हम देख सकते हैं कि इसमें ओवरलैपिंग सब-प्रॉब्लम हैं, तो हम इसे हल करने के लिए डायनामिक प्रोग्रामिंग दृष्टिकोण का उपयोग कर सकते हैं।

उदाहरण

#include <iostream>
using namespace std;

int minOfThree(int a, int b, int c) {
    return min(min(a, b), c);
}

int getMinSum(int arr[], int n) {
    int sum[n];
    sum[0] = arr[0];
    sum[1] = arr[1];
    sum[2] = arr[2];
    for (int i = 3; i < n; i++)
        sum[i] = arr[i] + minOfThree(sum[i - 3], sum[i - 2], sum[i - 1]);
    return minOfThree(sum[n - 1], sum[n - 2], sum[n - 3]);
}

int main() {
    int arr[] = {1, 2, 3, 20, 2, 10, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Minimum sum is: " << getMinSum(arr, n);
}

आउटपुट

Minimum sum is: 4

  1. सर्कुलर ऐरे में अधिकतम योग जहाँ कोई दो आसन्न तत्व न हों - C++ सर्कुलर ऐरे में अधिकतम योग जहाँ कोई दो आसन्न तत्व न हों - C++

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

  1. - C++ का उपयोग करके सरणी में ऐसा तत्व खोजें जिसके बाएं और दाएं उपसरणी का योग समान हो

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

  1. - C++ में दी गई संख्या n के लिए x ढूंढें जहां x + अंकों का योग = n

    समस्या विवरण एक संख्या n दी गई है, हमें एक मान x ढूंढना है जिससे x + x के अंकों का योग = n हो। उदाहरण के लिए, n = 21 के लिए, x = 15 होगा क्योंकि 15 + (1+5) = 21। हल दृष्टिकोण सरल दृष्टिकोण: 1 से n तक पुनरावृति करें, प्रत्येक संख्या के लिए जांचें कि क्या संख्या + उसके अंकों का योग = n है। यदि हां,