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