Назад к вопросам
VK
Middle
3
Опишите подход с хранением позиции последней единицы при решении задачи о максимальном расстоянии
Компании, где спрашивали
Ответ от нейросети
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
}