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

C++ में सरणी में प्रत्येक Kth तत्व लेते हुए अधिकतम योग ज्ञात करें

इस समस्या में, हमें एक सरणी गिरफ्तारी [] और एक पूर्णांक k दिया जाता है। हमारा कार्य सरणी में प्रत्येक Kth तत्व को लेकर अधिकतम योग प्राप्त करना है।

समस्या का विवरण:हमें सरणी के तत्वों का अधिकतम योग इस तरह खोजने की आवश्यकता है कि वे k इंडेक्स अलग हों। यानी। हमें योग को अधिकतम करने की आवश्यकता है,

योग =गिरफ्तारी [i] + गिरफ्तारी [i+k] + गिरफ्तारी [i + 2*k] +…. arr[i + p*k], जैसे कि (i + p*k)

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

इनपुट

arr[] = {5, 3, −1, 2, 4, −5, 6}, k = 4

आउटपुट

9

स्पष्टीकरण

All sums of every kth element is
5 + 4 = 9
3 − 5 = −2
−1 + 6 = 5
2
4
−5
6
The maximum is 9

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

समस्या का एक सरल समाधान दो नेस्टेड लूप का उपयोग करना है, बाहरी एक सरणी के प्रत्येक तत्व के लिए और आंतरिक एक का उपयोग प्रत्येक kth तत्व को i से लेने के योग को खोजने के लिए किया जाता है। यानी योग =गिरफ्तारी [i] + गिरफ्तारी [i + के] + गिरफ्तारी [i + 2*k] + … + गिरफ्तारी [i + p*k] ऐसा कि (i + p*k)

और अधिकतम राशि लौटाएं।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

#include <iostream>
using namespace std;
int findMaxSumK(int arr[], int n, int K){
   int maxSum = -1000;
   for (int i = 0; i < n; i++) {
      int current_Sum = 0;
      for (int j = i; j < n; j += K)
         current_Sum = current_Sum + arr[j];
         maxSum = max(maxSum, current_Sum);
   }
   return maxSum;
}
int main(){
   int arr[] = {5, 3, -1, 2, 4, -5, 6};
   int n = sizeof(arr) / sizeof(arr[0]);
   int K = 3;
   cout<<"The maximum sum taking every Kth element in the array is
   "<<findMaxSumK(arr, n, K);
   return (0);
}

आउटपुट

The maximum sum taking every Kth element in the array is 13

समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

#include <iostream>
using namespace std;
int findMaxSumK(int arr[], int n, int K) {
   int maxSum = -1000;
   int suffSum[n] = {0};
   for (int i = n - 1; i >= 0; i--) {
      if (i + K < n)
         suffSum[i] = suffSum[i + K] + arr[i];
      else
         suffSum[i] = arr[i];
         maxSum = max(maxSum, suffSum[i]);
   }
   return maxSum;
}
int main(){
   int arr[] = {5, 3, -1, 2, 4, -5, 6};
   int n = sizeof(arr) / sizeof(arr[0]);
   int K = 3;
   cout<<"The maximum sum taking every Kth element in the array is
   "<<findMaxSumK(arr, n, K);
   return (0);
}

आउटपुट

The maximum sum taking every Kth element in the array is 13

  1. सी ++ में सरणी में प्रत्येक तत्व के लिए निकटतम मान पाएं

    यहां हम देखेंगे कि किसी सरणी में प्रत्येक तत्व के लिए निकटतम मान कैसे प्राप्त करें। यदि किसी तत्व x में अगला तत्व है जो उससे बड़ा है, और सरणी में भी मौजूद है, तो वह उस तत्व का अधिक मूल्य होगा। यदि तत्व मौजूद नहीं है, तो -1 लौटाएं। मान लीजिए कि सरणी तत्व [10, 5, 11, 6, 20, 12] हैं, तो बड़े तत्व [11,

  1. सी ++ में सरणी में प्रत्येक तत्व के लिए निकटतम अधिक मूल्य खोजें

    यहां हम देखेंगे कि किसी सरणी में प्रत्येक तत्व के लिए निकटतम अधिक मूल्य कैसे प्राप्त करें। यदि किसी तत्व x में अगला तत्व है जो उससे बड़ा है, और सरणी में भी मौजूद है, तो वह उस तत्व का अधिक मूल्य होगा। यदि तत्व मौजूद नहीं है, तो -1 लौटाएं। मान लीजिए कि सरणी तत्व [10, 5, 11, 6, 20, 12] हैं, तो बड़े तत्

  1. सी++ प्रोग्राम सरणी को विभाजित करने की विधि द्वारा kth सबसे छोटा तत्व खोजने के लिए

    हम एरे को विभाजित करने की विधि द्वारा kth सबसे छोटा तत्व खोजने के लिए एक C++ प्रोग्राम विकसित करेंगे। एल्गोरिदम Begin    Function CreatePartition() has an array a, and the lower l and upper limit h as arguments    in := l and pi := h    for i in range l to h, do