Middle
Maksimal masofa muammosini hal qilishda oxirgi birlikning pozitsiyasini saqlash yondashuvini tavsiflang
sobes.tech AI
AIdan javob
Maksimal masofaga erishish uchun oxirgi birlik pozitsiyasini saqlash yondashuvi (masalan, massivdagi birliklar orasidagi maksimal masofa) quyidagicha:
- Massiv bo'ylab yurib, oxirgi uchragan birlik indeksini kuzatish.
- Yangi birlik bilan uchrashganda, bu birlikning saqlangan oxirgi pozitsiyasiga bo'lgan masofani hisoblash.
- Agar hozirgi masofa eng katta bo'lsa, maksimal masofani yangilash.
- Oxirgi birlik pozitsiyasini hozirgi indeksga yangilash.
Bu, barcha pozitsiyalarni saqlashga ehtiyoj qolmasdan, bitta o'tishda birliklar orasidagi maksimal masofani topishga imkon beradi.
Go tilida misol:
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
}