From 8fcb93777cb839a6407f5ed8c551ed4ca6ffdd58 Mon Sep 17 00:00:00 2001 From: Bhoomchai L Date: Wed, 28 Oct 2020 12:15:25 +0700 Subject: [PATCH] Added Kadane's algorithm in Kotlin (issue #104) --- Kotlin/Kadane.kt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Kotlin/Kadane.kt diff --git a/Kotlin/Kadane.kt b/Kotlin/Kadane.kt new file mode 100644 index 0000000..178d3b1 --- /dev/null +++ b/Kotlin/Kadane.kt @@ -0,0 +1,22 @@ +import java.util.* + +fun maxSumSubArray (array: IntArray): Int { + var local_max = 0 + var global_max = Int.MIN_VALUE + for (i in array.indices) { + local_max = maxOf(array[i], array[i] + local_max) + if(local_max > global_max) + global_max = local_max; + } + return global_max +} + +fun main() { + var array = intArrayOf(2, -1, 4, 5, -4, 1, 2, -3, 5, 4, 1, -5, 3, -4) + println("Input array: ${Arrays.toString(array)}") + println("The maximum sum of contiguous subarray is ${maxSumSubArray(array)}.") + + var array2 = intArrayOf(-2, -3, 4, -1, -2, 1, 5, -3) + println("Input array: ${Arrays.toString(array2)}") + println("The maximum sum of contiguous subarray is ${maxSumSubArray(array2)}.") +} \ No newline at end of file