diff --git a/kadane's algorithm b/kadane's algorithm new file mode 100644 index 0000000..31973dd --- /dev/null +++ b/kadane's algorithm @@ -0,0 +1,31 @@ +//kadane's algorithm +#include +using namespace std; + +int maxSubarraySum(int arr[], int n) { + int maxi = INT_MIN; // maximum sum + + for (int i = 0; i < n; i++) { + int sum = 0; + for (int j = i; j < n; j++) { + // current subarray = arr[i.....j] + + //add the current element arr[j] + // to the sum i.e. sum of arr[i...j-1] + sum += arr[j]; + + maxi = max(maxi, sum); // getting the maximum + } + } + + return maxi; +} + +int main() +{ + int arr[] = { -2, 1, -3, 4, -1, 2, 1, -5, 4}; + int n = sizeof(arr) / sizeof(arr[0]); + int maxSum = maxSubarraySum(arr, n); + cout << "The maximum subarray sum is: " << maxSum << endl; + return 0; +}