From 62fdf0d44e801b32b38963843f39245c2570d490 Mon Sep 17 00:00:00 2001 From: NISHITA97 Date: Fri, 8 Dec 2017 02:33:47 +0530 Subject: [PATCH] Kadane's Algorithm added --- Dynamic Programming/KadaneAlgorithm.java | 55 ++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Dynamic Programming/KadaneAlgorithm.java diff --git a/Dynamic Programming/KadaneAlgorithm.java b/Dynamic Programming/KadaneAlgorithm.java new file mode 100644 index 000000000..e82de1005 --- /dev/null +++ b/Dynamic Programming/KadaneAlgorithm.java @@ -0,0 +1,55 @@ +import java.util.Scanner; + +/** + * Program to implement Kadane’s Algorithm to + * calculate maximum contiguous subarray sum of an array + * Time Complexity: O(n) + * + * @author Nishita Aggarwal + * + */ + +public class KadaneAlgorithm { + + /** + * This method implements Kadane's Algorithm + * + * @param arr The input array + * @return The maximum contiguous subarray sum of the array + * + */ + static int largestContiguousSum(int arr[]){ + int i,len=arr.length,cursum=0,maxsum=Integer.MIN_VALUE; + if(len==0) //empty array + return 0; + for(i=0;imaxsum){ + maxsum=cursum; + } + if(cursum<=0){ + cursum=0; + } + } + return maxsum; + } + + /** + * Main method + * + * @param args Command line arguments + */ + public static void main(String[] args) { + Scanner sc=new Scanner(System.in); + int n,arr[],i; + n=sc.nextInt(); + arr=new int[n]; + for(i=0;i