Sobes.tech
Middle

Popíšte prístup k ukladaniu pozície poslednej jednotky pri riešení problému maximálnej vzdialenosti

sobes.tech AI

Odpoveď od AI

Prístup spočívajúci v uchovávaní pozície poslednej jednotky pri riešení problému maximálnej vzdialenosti (napríklad, maximálnej vzdialenosti medzi jednotkami v poli) je nasledovný:

  • Prechádzame pole, sledujúc index poslednej nájdenej jednotky.
  • Pri stretnutí s novou jednotkou vypočítame vzdialenosť od poslednej uložené pozície tejto jednotky.
  • Aktualizujeme maximálnu vzdialenosť, ak je aktuálna väčšia.
  • Aktualizujeme pozíciu poslednej jednotky na aktuálny index.

Toto umožňuje nájsť maximálnu vzdialenosť medzi jednotkami v jednom prechode bez potreby ukladať všetky pozície.

Príklad v 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
}