Sobes.tech
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
}