8. Largest sum contiguous subarray.

8. Largest sum contiguous subarray.


Problem link :- click here


C code

//kadane's algorithm
#include<stdio.h>

int maxSubarraySum(int A[], int n)
{
    int i, cur_sum, max_sum;
    cur_sum = 0;
    max_sum = A[0];

    for(i=0; i<n; i++)
    {
        cur_sum = cur_sum + A[i];
        if(cur_sum > max_sum)
        {
            max_sum = cur_sum;
        }
        if(cur_sum < 0)
        {
            cur_sum = 0;
        }
    }
    return max_sum;
}

void main()
{
    int arr[30];
    int n, i, ans;

    printf("Enter the size of the array\n");
    scanf("%d",&n);
    printf("Enter the elements of the array\n");
    for(i=0; i<n; i++)
        scanf("%d",&arr[i]);

    printf("Given Array\n");
    for(i=0; i<n; i++)
        printf("\t%d",arr[i]);

    ans = maxSubarraySum(arr, n);
    printf("\n\nMaximum sum contiguous sub array of the given array is %d\n", ans);
}

Java code

//largest sum conntiguous subarray
package programs;

import java.util.*;

public class Array__8
{
	
	static int max_sum_subarray(int arr[], int n)
	{
		int max_sum, cur_sum;
		max_sum = arr[0];
		cur_sum = arr[0];
		for(int i=1; i<n; i++)
		{
			cur_sum = cur_sum + arr[i];
			if(cur_sum > max_sum)
				max_sum = cur_sum;
			if(cur_sum < 0)
				cur_sum = 0;
		}
		return max_sum;
	}
	
	public static void main(String args[])
	{
		int array[] = new int[20];
		int n, i, ans;
		
		Scanner s = new Scanner(System.in);
		System.out.print("Enter the size of the array :");
		n = s.nextInt();
		System.out.println("Enter the elements of the array :");
		for(i=0; i<n; i++)
			array[i] = s.nextInt();
		System.out.println("Given Array :");
		print_array(array, n);
		System.out.println("\n\n");
		
		ans = max_sum_subarray(array, n);
		System.out.println("Maximum sum of the contiguous subarray is " + ans);
	}

	static void print_array(int arr[], int n)
	{
		for(int i=0; i<n; i++)
			System.out.print(arr[i] + " ");
	}
}

Time complexity : O(n)
Space complexity : O(1)



Comments

Popular posts from this blog

4.Sort an array of 0's, 1's & 2's.

1. Reverse

3. Height of Binary tree