如题~
如果数组是单调递增或单调递减的,那么它是单调的。
如果对于所有i <= j,A[i] <= A[j]
,那么数组A
是单调递增的。 如果对于所有i <= j,A[i]> = A[j]
,那么数组A
是单调递减的。
当给定的数组A
是单调数组时返回true
,否则返回false
。
这题较简单。
一次遍历:
class Solution {
public:
bool isMonotonic(vector<int> &A) {
bool up = true, down = true;
int n = A.size();
for (int i = 0; i < n - 1; i++)
{
if (A[i] > A[i + 1])
{
up = false;
}
if (A[i] < A[i + 1])
{
down = false;
}
}
return up || down;//只要有两个都不对的时候还才是false
}
};
开始先把两个up和down都设置为true
如果中间只有一次变化一直是a[i]>a[i+1]
那结局就是true。
如果只有a[i]<a[i+1]
也一样。
但如果中间变化了两次,就报废了。