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

📅  最后修改于: 2021-10-26 05:40:09             🧑  作者: 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 是否是单调递增的,我们将检查A[i] <= A[i+1]以获取从 0 到 len(A)-2 的所有 i 索引。类似地,对于从 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 是数组的长度。

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程