How to find the sum of the subarray which has the largest sum in C#

2 Answers

0 votes
using System;

class Program
{
     public static int max_subarray_sum(int[] arr) {
        int max_sum = 0;
        int max_till_i = 0;
 
        for (int i = 0; i < arr.Length; i++) {
            max_till_i = max_till_i + arr[i];
            max_till_i = Math.Max(max_till_i, 0);
            max_sum = Math.Max(max_sum, max_till_i);
        }
 
        return max_sum;
    }
    static void Main()
    {
        int[] arr = { 1, -2, 2, -3, 4, -1, -1, 2, 3, -5, 4 }; // 4 - 1 - 1 + 2 + 3 = 7

        Console.Write(max_subarray_sum(arr));
    }
}



/*
run:

7

*/

 



answered Jul 27, 2019 by avibootz
edited Apr 16, 2023 by avibootz
0 votes
using System;
 
class Program
{
     public static int max_subarray_sum(int[] arr) {
        int sum = 0;
        int max = arr[0];
        
        foreach (int val in arr) {
            sum += val;
            max = Math.Max(sum, max);
            sum = Math.Max(sum, 0);
        }
        
        return max;
    }
    static void Main()
    {
        int[] arr = { 1, -2, 2, -3, 4, -1, -1, 2, 3, -5, 4 }; // 4 - 1 - 1 + 2 + 3 = 7
 
        Console.Write(max_subarray_sum(arr));
    }
}
 
 
 
/*
run:
 
7
 
*/

 



answered Feb 23, 2024 by avibootz

Related questions

...