Pages

Tuesday, April 8, 2025

Kadane's Algorithm for Max Sum Subarray in C++ (Very Imp. Question)

 #include<iostream>

using namespace std;

void maxSubarraySum3(int *arr, int n) {
    int maxSum = INT8_MIN;
    int currSum = 0;
    for(int i=0; i<n; i++) {
        currSum += arr[i];
        maxSum = max(currSum, maxSum);
        if(currSum < 0) {
            currSum = 0;
        }
    }

    cout << " maximum subarray sum = " << currSum << endl;
}

void maxSubarraySum2(int *arr, int n) {
    int maxSum = INT8_MIN;


    for(int start = 0; start < n; start++) { // start = 2
        int currSum = 0;
        for(int end=start; end<n; end++) { // end = 2, 3, 4, 5
            currSum += arr[end];
            maxSum = max(maxSum, currSum);
        }
    }

    cout << "maximum subarray sum = " << maxSum << endl;
}

int main(){
    int arr[] = {-1,-2,-3,-4};
    int n = sizeof(arr) / sizeof(int);

    maxSubarraySum3(arr, n);

    return 0;
}

OUTPUT-
maximum subarray sum = 7

No comments:

Post a Comment

Multi-dimensional ArrayList in Java

  // import java.util.ArrayList; import java.util. * ; // import java.util.Collections; public class Classroom {     public static voi...