Merge pull request #33 from ridwanfathin/master

Add Max subArray
master
0xAX 2 years ago committed by GitHub
commit 3d6755a742
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,31 @@
package numerical
import (
"fmt"
)
/* O(n) solution for calculating maximum subarray sum. */
func Max(x int, y int) int {
if x < y {
return y
}
return x
}
func maxSubarray(array []int) int {
var currentMax int = 0
var maxTillNow int = 0
for _, v := range array {
currentMax = Max(v, currentMax+v)
maxTillNow = Max(maxTillNow, currentMax)
}
return maxTillNow
}
func main() {
array := []int{-3, -4, 7, 1, -2, 0, -5, 1, 0, 6, -5}
fmt.Println("Maximum subarray sum: ", maxSubarray(array))
array = []int{3, 4, -7, 2, 0, 0, -3, -1, 0, -5, 7}
fmt.Println("Maximum subarray sum: ", maxSubarray(array))
}
Loading…
Cancel
Save