1769. Minimum Number of Operations to Move All Balls to Each Box
🟧 Medium
Solution
My Solution-1
func minOperations(boxes string) []int {
resp := make([]int, len(boxes))
for i := range boxes {
var count int
for j, num := range boxes {
if num == '1' {
count += abs(j-i)
}
}
resp[i] = count
}
return resp
}
func abs(x int) int {
if x < 0 {
x*=-1
}
return x
}
My Solution-2
func minOperations(boxes string) []int {
resp := make([]int, len(boxes))
var (
bl, ml = 0, 0
br, mr = 0, 0
j = 0
)
n := len(boxes)
for i:=0; i<n; i++{
resp[i] += ml
bl += int(boxes[i]-'0')
ml += bl
j = n-1-i
resp[j] += mr
br += int(boxes[j]-'0')
mr += br
}
return resp
}