给定一个包含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 是否是单调递增的,我们将检查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 现场工作专业课程和学生竞争性编程现场课程。