Largest Sum Contiguous Subarray

 

#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

Popular posts from this blog

Clear right most set bit of an integer n

Swap bits at ith and jth position of integer n

Toggle the bit at Kth position of integer n