From 62fdf0d44e801b32b38963843f39245c2570d490 Mon Sep 17 00:00:00 2001 From: NISHITA97 Date: Fri, 8 Dec 2017 02:33:47 +0530 Subject: [PATCH 1/2] 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 Date: Fri, 8 Dec 2017 02:36:20 +0530 Subject: [PATCH 2/2] Update KadaneAlgorithm.java --- Dynamic Programming/KadaneAlgorithm.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dynamic Programming/KadaneAlgorithm.java b/Dynamic Programming/KadaneAlgorithm.java index e82de1005..56d0ec6ff 100644 --- a/Dynamic Programming/KadaneAlgorithm.java +++ b/Dynamic Programming/KadaneAlgorithm.java @@ -14,10 +14,10 @@ public class KadaneAlgorithm { /** * This method implements Kadane's Algorithm * - * @param arr The input array + * @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