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
}