Sobes.tech
Middle

Kirjeldage lähenemist, kus salvestate viimase üksuse positsiooni maksimaalse kauguse probleemi lahendamisel

sobes.tech AI

Vastus AI-lt

Maksimaalse kauguse probleemi lahendamisel, kui hoitakse viimase üksuse positsiooni (näiteks, maksimaalne kaugus üksuste vahel massiivis), on järgmine:

  • Läbime massiivi, jälgides viimase kohtatud üksuse indeksit.
  • Kui kohtame uut üksust, arvutame kauguse selle üksuse viimase salvestatud positsiooni suhtes.
  • Uuendame maksimaalset kaugust, kui see on suurem.
  • Uuendame viimase üksuse positsiooni praeguse indeksiga.

See võimaldab ühe läbimisega leida maksimaalse kauguse üksuste vahel, ilma et peaks salvestama kõiki positsioone.

Näide Go keeles:

func maxDistance(arr []int) int {
    lastPos := -1
    maxDist := 0
    for i, val := range arr {
        if val == 1 {
            if lastPos != -1 {
                dist := i - lastPos
                if dist > maxDist {
                    maxDist = dist
                }
            }
            lastPos = i
        }
    }
    return maxDist
}