📜  检查给定数组是否单调的Python程序

📅  最后修改于: 2021-04-23 19:26:15             🧑  作者: Mango

给定一个包含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 <= qq <= 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是数组的长度。