Sobes.tech
Назад к вопросам
Middle
3

Опишите подход с хранением позиции последней единицы при решении задачи о максимальном расстоянии

Компании, где спрашивали
VKVK

Ответ от нейросети

sobes.tech AI

Подход с хранением позиции последней единицы при решении задачи о максимальном расстоянии (например, максимального расстояния между единицами в массиве) заключается в следующем:

  • Итерируемся по массиву, отслеживая индекс последней встреченной единицы.
  • При встрече новой единицы вычисляем расстояние до последней сохранённой позиции единицы.
  • Обновляем максимальное расстояние, если текущее больше.
  • Обновляем позицию последней единицы на текущий индекс.

Это позволяет за один проход найти максимальное расстояние между единицами без необходимости хранить все позиции.

Пример на Go:

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
}