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
}
result

Leetcode: link

Last updated

Was this helpful?