Back to questions
OZON
Middle
5
Является ли слайс монотонным? Монотонная функция - функция одной переменной, определённая на некотором подмножестве действительных чисел, которая либо везде (на области своего определения) не убывает, либо везде не возрастает. {1,7} - true {1,1} - true {3,3,1} - true {9,5,1} - true {23,5,23} - false
Companies where asked
Answer from AI
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