an array with [1,5,6,7,9,10] can be balanced by splitting the array at position 4
an array with [1, 5, 6, 7, 9, 10] can be balanced by splitting the array at position 4
an array with [3, 8, 4, 15] can be balanced by splitting the array at position 3
an array with [1, 8, 1, 2, 8]) can be balanced by splitting the array at position 3
an array with [1, 3, 5, 1, 2] can't be balanced, hence position -1
package main
import (
"fmt"
)
func balancingArrays(slice []int) int {
left := 0
right := len(slice) - 1
sumLeft := 0
sumRight := 0
for left <= right {
if sumLeft < sumRight {
sumLeft += slice[left]
left++
} else {
sumRight += slice[right]
right--
}
}
if sumLeft == sumRight {
return left
}
return -1
}
func main() {
fmt.Println(balancingArrays([]int{1, 5, 6, 7, 9, 10})) // 4
fmt.Println(balancingArrays([]int{3, 8, 4, 15})) // 3
fmt.Println(balancingArrays([]int{1, 8, 1, 2, 8})) // 3
fmt.Println(balancingArrays([]int{1, 3, 5, 1, 2})) // -1
}
No comments:
Post a Comment