Sobes.tech
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
}