题目描述
如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A 是单调数组时返回 true,否则返回 false。
代码
class Solution {
public:
bool isMonotonic(const vector<int>& A) {
int len = A.size();
int x=0;
int y=0;
if(len == 1) return true;
for(int i=0;i<len-1;i++)
{
if(A.at(i)>A.at(i+1))
{
x++;
}
if(A.at(i)<A.at(i+1))
{
y++;
}
}
if(x==0||y==0) //单调序列中仅有x=0或y=0,否则为非单调数列
return true;
else
return false;
}
};
另附上大佬们使用STL模板库的解题思路,便于日后观摩
class Solution {
public:
bool isMonotonic(vector<int>& A) {
return is_sorted(A.begin(),A.end()) || is_sorted(A.rbegin(),A.rend());
}
};