Middle
Aprakstiet pieeju, kur saglabājat pēdējās vienības pozīciju, risinot maksimālā attāluma uzdevumu
sobes.tech AI
Atbilde no AI
Maksimālās attāluma problēmas risināšanā, saglabājot pēdējās vienības pozīciju (piemēram, maksimālo attālumu starp vienībām masīvā), ir šāds:
- Pārlūkojiet masīvu, sekojot pēdējās sastaptās vienības indeksam.
- Sastopot jaunu vienību, aprēķiniet attālumu līdz šīs vienības saglabātajai pēdējai pozīcijai.
- Ja pašreizējais attālums ir lielāks, atjauniniet maksimālo attālumu.
- Atjauniniet pēdējās vienības pozīciju uz pašreizējo indeksu.
Tas ļauj vienā pārejā atrast maksimālo attālumu starp vienībām, nesaglabājot visas pozīcijas.
Go piemērs:
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
}