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