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