Maximum Subarray. Θ(n)
///Maximum Subarray. Θ(n)
func maximumSubarray(_ array: [Int]) -> (Int, Int, Int) {
var low = -1, high = -1, sum = Int.min
var currentLow = -1, currentHigh = -1, currentSum = Int.min
for i in 0..<array.count {
if currentSum < 0 {
currentSum = array[i]
currentLow = i
} else {
currentSum += array[i]
}
currentHigh = i
if currentSum > sum {
sum = currentSum
high = currentHigh
low = currentLow
}
}
return (low, high, sum)
}
var s = try Int.randomArray(above: -10, under: 10)
maximumSubarray(s)
本文标题:Maximum Subarray. Θ(n)
本文链接:https://www.haomeiwen.com/subject/vzogsxtx.html
网友评论