Sobes.tech
Middle

Este un slice monoton? O funcție monotonă este o funcție de o variabilă, definită pe un subset al numerelor reale, care fie nu scade peste tot (pe domeniul său), fie nu crește peste tot. {1,7} - adevărat {1,1} - adevărat {3,3,1} - adevărat {9,5,1} - adevărat {23,5,23} - fals

sobes.tech AI

Răspuns de la AI

Pentru a determina dacă o listă este monotonă, trebuie verificat dacă nu este în creștere (fiecare element următor nu este mai mic decât cel anterior) sau nu este în descreștere (fiecare element următor nu este mai mare decât cel anterior).

Exemplu de funcție în Go care verifică monotonia unei liste de numere întregi:

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
}

Exemplu de utilizare:

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