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