在 C++ 中反覆連線後建立的陣列中的最大子陣列和
在本教程中,我們將討論一個程式,以在反覆連線後建立的陣列中找到最大子陣列和。
為此,我們將提供一個數組和一個整數 K。我們的任務是在給定陣列重複 K 次後找到具有最大元素的子陣列。
示例
#include<bits/stdc++.h> using namespace std; //returning sum of maximum subarray int maxSubArraySumRepeated(int a[], int n, int k) { int max_so_far = INT_MIN, max_ending_here = 0; for (int i = 0; i < n*k; i++) { max_ending_here = max_ending_here + a[i%n]; if (max_so_far < max_ending_here) max_so_far = max_ending_here; if (max_ending_here < 0) max_ending_here = 0; } return max_so_far; } int main() { int a[] = {10, 20, -30, -1}; int n = sizeof(a)/sizeof(a[0]); int k = 3; cout << "Maximum contiguous sum is " << maxSubArraySumRepeated(a, n, k); return 0; }
輸出
Maximum contiguous sum is 30
廣告