Sobes.tech
Middle

Írja le a megközelítést, amely során a legutóbbi egység pozícióját tárolja a maximális távolság problémájának megoldásakor

sobes.tech MI

Válasz az MI-től

A maximális távolság eléréséhez az utolsó egység pozíciójának tárolási megközelítése (például, a maximális távolság az egységek között egy tömbben) a következő:

  • Iteráljunk a tömbön, követve az utoljára találkozott egység indexét.
  • Új egység találásakor számítsuk ki a távolságot az utoljára tárolt egység pozíciójához képest.
  • Frissítsük a maximális távolságot, ha a jelenlegi nagyobb.
  • Frissítsük az utolsó egység pozícióját a jelenlegi indexre.

Ez lehetővé teszi, hogy egyetlen áthaladással megtaláljuk az egységek közötti maximális távolságot anélkül, hogy minden pozíciót tárolnánk.

Go példakód:

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
}