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
}