class Solution { public: bool isMonotonic(vector<int>& A) { if (A.size() <= 2) { return true; } bool GetDiff = false;//是都找到了不同元素 bool Increace = true;//假设为增序列 for (int i = 0; i <= A.size() - 2; i++) { if (GetDiff)//已经找到不相同元素 { if (Increace&&A[i] > A[i + 1])//应该是增序列,但遇到左>右,则表示false { return false; } if (!Increace&&A[i] < A[i + 1])//应该是减序列,但遇到左<右,则表示false { return false; } } else { if (A[i] != A[i + 1])//第一次发现不相同元素 { if (A[i] < A[i + 1])// 如果左<右,则后面应该都是增 { Increace = true;//增序列 } else//如果左>右,则后面应该都是减 { Increace = false;//减序列 } GetDiff = true; } } } return true;//没有出现问题,则表示true } };