LeetCode: 896. Monotonic Array
LeetCode: 896. Monotonic Array
题目描述
An array is monotonic if it is either monotone increasing or monotone decreasing.
An array A
is monotone increasing if for all i <= j, A[i] <= A[j]
. An array A is monotone decreasing if for all i <= j, A[i] >= A[j]
.
Return true
if and only if the given array A
is monotonic.
Example 1:
Input: [1,2,2,3]
Output: true
Example 2:
Input: [6,5,4,4]
Output: true
Example 3:
Input: [1,3,2]
Output: false
Example 4:
Input: [1,2,4,5]
Output: true
Example 5:
Input: [1,1,1]
Output: true
Note:
1 <= A.length <= 50000
-100000 <= A[i] <= 100000
解题思路
遍历数组,标记升序/降序情况。当发现后面的元素与前面的标记冲突时,则返回 false
, 否则返回 true
。
AC 代码
class Solution {
public:
bool isMonotonic(vector<int>& A) {
bool ans = true;
int isComp = 0; // 0: 等于 1: 降序 2: 升序
for(int i = 0; i < A.size()-1; ++i)
{
if(A[i] > A[i+1])
{
if(isComp == 0) isComp = 2;
else if(isComp == 1) return false;
}
else if(A[i] < A[i+1])
{
if(isComp == 0) isComp = 1;
else if(isComp == 2) return false;
}
}
return ans;
}
};