Sobes.tech
Middle

Descrieți abordarea de a stoca poziția ultimei unități în timpul rezolvării problemei distanței maxime

sobes.tech AI

Răspuns de la AI

Abordarea de a păstra poziția ultimei unități în rezolvarea problemei distanței maxime (de exemplu, distanța maximă între unități într-un array) constă în următoarele:

  • Parcurgerea array-ului, urmărind indicele ultimei unități întâlnite.
  • La întâlnirea unei noi unități, calcularea distanței față de ultima poziție salvată a acesteia.
  • Actualizarea distanței maxime dacă cea curentă este mai mare.
  • Actualizarea poziției ultimei unități la indicele curent.

Acest lucru permite găsirea distanței maxime între unități într-o singură trecere, fără a fi nevoie să stocați toate pozițiile.

Exemplu în Go:

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
}