diff --git a/largest_sum_contiguous_subarray/largest_sum_contiguous_subarray.cpp b/largest_sum_contiguous_subarray/largest_sum_contiguous_subarray.cpp new file mode 100644 index 00000000..f7bb3b52 --- /dev/null +++ b/largest_sum_contiguous_subarray/largest_sum_contiguous_subarray.cpp @@ -0,0 +1,31 @@ +// Kadane Algorithm +// Largest Sum Contiguous Subarray +// Time complexity O(n) + +#include +using namespace std; + +int largestSum_ContiguousSubarray(int arr[], int size){ + int max_sum = INT_MIN; + int curr_sum = 0; + for (int i = 0; i < size; i++) //linear iteration of the array + { + curr_sum += arr[i]; + max_sum = max(max_sum, curr_sum); + if (curr_sum < 0) //if current sum is negative, it won't be included... + { + curr_sum = 0; + } + } + return max_sum; +} + +int main() +{ + int n = 10; + int arr[n] = {4, -1, 2, -7, 3, 4, -5, 3, 2, 4}; + + cout<< "largest sum: "<