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
}