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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

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

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

Пример на 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
}

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее