#include <iostream>
#include <vector>
using namespace std;
int partial_sum(vector<int>& sum, int x, int y) {
return sum[y] - sum[x - 1];
}
void sum_array(vector<int>& v, vector<int>& sum) {
sum.push_back(v[0]);
for (auto i = 1; i < v.size(); i++) {
sum.push_back(sum[i - 1] + v[i]);
}
}
int max_sum_subarray(vector<int>& sum) {
int minSum = 0;
int result = INT_MIN;
for (int r = 0; r < sum.size(); r++) {
if (sum[r] - minSum > result) {
result = sum[r] - minSum;
}
if (sum[r] < minSum) {
minSum = sum[r];
}
}
return result;
}
int main()
{
vector<int> v = { -2, -3, 4, -1, -2, 1, 5, -3 };
vector <int> sum;
sum_array(v, sum);
cout << max_sum_subarray(sum);
return 0;
}
Comments
Post a Comment