Назад к вопросам
OZON
Middle
6
Является ли слайс монотонным? Монотонная функция - функция одной переменной, определённая на некотором подмножестве действительных чисел, которая либо везде (на области своего определения) не убывает, либо везде не возрастает. {1,7} - true {1,1} - true {3,3,1} - true {9,5,1} - true {23,5,23} - false
Компании, где спрашивали
Ответ от нейросети
sobes.tech 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