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
}