object MaxSubArray_Scala {
def maxSubArray(nums: Array[Int]): Int = {
var maxSum = nums(0)
var currentSum = nums(0)
for (i <- 1 until nums.length) {
currentSum = math.max(nums(i), currentSum + nums(i))
maxSum = math.max(maxSum, currentSum)
}
maxSum
}
def main(args: Array[String]): Unit = {
val array = Array(1, -2, 2, -3, 4, -1, -1, 2, 3, -5, 4) // 4 + -1 + -1 + 2 + 3 = 7
val maxSum = maxSubArray(array)
println(s"Maximum sum of a subarray: $maxSum")
}
}
/*
run:
Maximum sum of a subarray: 7
*/