给定一个包含n个整数的数组A。任务是检查数组是否为单调。如果数组是单调递增或单调递减的,则它是单调的。
如果对于所有i <= j, A [i] <= A [j] ,数组A是单调递增的。如果对于所有i <= j, A [i]> = A [j] ,数组A是单调递减的。
如果给定数组A是单调的,则返回“ True ”,否则返回“ False ”(不带引号)。
例子:
Input : 6 5 4 4
Output : true
Input : 5 15 20 10
Output : false
方法:
阵列是单调的,当且仅当它是单调递增或单调递减。由于p <= q和q <= r意味着p <= r 。因此,我们只需要检查相邻元素即可确定数组是否分别是单调递增(或递减)的。我们可以一次性检查所有这些属性。
为了检查数组A是否为单调递增,我们将检查从0到len(A)-2的所有i索引的A [i] <= A [i + 1]。类似地,我们可以检查单调递减,其中对于从0到len(A)-2的所有i索引,A [i]> = A [i + 1]。
注意:具有单个元素的数组可以被认为是单调递增或递减,因此返回“ True ”。
下面是上述方法的实现:
Python3
# Python3 program to find sum in Nth group
# Check if given array is Monotonic
def isMonotonic(A):
return (all(A[i] <= A[i + 1] for i in range(len(A) - 1)) or
all(A[i] >= A[i + 1] for i in range(len(A) - 1)))
# Driver program
A = [6, 5, 4, 4]
# Print required result
print(isMonotonic(A))
# This code is written by
# Sanjit_Prasad
输出:
True
时间复杂度: O(N),其中N是数组的长度。