Description
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
Solution
- 解题思路
一开始的想法是做两次判断,判断是否是递增数组,如果不是再判断是否是递减数组,参考了博客:https://blog.youkuaiyun.com/yanglingwell/article/details/82316780,原来可以在一次循环里面直接判断,感到了自己的菜T T
先设置两个布尔变量inc(递增)、dec(递减),初值为true,在循环过程中如果不满足条件则将变量设为false,最后返回这两个变量的or结果。
- AC代码
class Solution {
public:
bool isMonotonic(vector<int>& A) {
bool inc = true, dec = true;
for(int i = 0; i < A.size() - 1; i++){
if(A[i] < A[i+1]) dec = false;
else if(A[i] > A[i+1]) inc = false;
}
return inc || dec;
}
};