Sobes.tech
Middle

Демек, слайс монотонбу? Монотон функция — бул бир өзгөрмө менен берилген функция, ал реал сандардын бир бөлүгүндө аныкталган жана ал бардык жерде (өзүнүн аныктоо чегинде) төмөндөбөйт же жогорулабайт. {1,7} - туура {1,1} - туура {3,3,1} - туура {9,5,1} - туура {23,5,23} - туура эмес

sobes.tech AI

AIден жооп

Бир тизмонун монотондуулугун аныктоо үчүн, ал не өсүп жаткан (ар бир кийинки элемент алдынкысына караганда кичине эмес) же не төмөндөп жаткан (ар бир кийинки элемент алдынкысына караганда чоң эмес) экенин текшерүү керек.

Go тилиндеги мисал функция, ал бүтүн сандар тизмесинин монотондуулугун текшерет:

func isMonotonic(nums []int) bool {
    if len(nums) <= 1 {
        return true
    }

    increasing := true
    decreasing := true

    for i := 1; i < len(nums); i++ {
        if nums[i] > nums[i-1] {
            decreasing = false
        }
        if nums[i] < nums[i-1] {
            increasing = false
        }
    }

    return increasing || decreasing
}

Колдонуу мисалы:

fmt.Println(isMonotonic([]int{1,7}))       // true
fmt.Println(isMonotonic([]int{1,1}))       // true
fmt.Println(isMonotonic([]int{3,3,1}))     // true
fmt.Println(isMonotonic([]int{9,5,1}))     // true
fmt.Println(isMonotonic([]int{23,5,23}))   // false