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
}