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
}