Middle
Опишете подхода за съхраняване на позицията на последната единица при решаването на задачата за максимално разстояние
sobes.tech AI
Отговор от 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
}