diff options
Diffstat (limited to 'works/solutions/leetcode/cpp')
| -rw-r--r-- | works/solutions/leetcode/cpp/896.cpp | 35 | 
1 files changed, 35 insertions, 0 deletions
| diff --git a/works/solutions/leetcode/cpp/896.cpp b/works/solutions/leetcode/cpp/896.cpp new file mode 100644 index 0000000..25bd528 --- /dev/null +++ b/works/solutions/leetcode/cpp/896.cpp @@ -0,0 +1,35 @@ +#include <vector>
 +
 +using std::vector;
 +
 +enum Order { Ascend, Descend, Unknown };
 +
 +class Solution {
 +public:
 +  bool isMonotonic(vector<int> &A) {
 +    Order order = Unknown;
 +
 +    int count = A.size();
 +    for (int i = 1; i < count; i++) {
 +      int last = A[i - 1];
 +      int current = A[i];
 +      if (order == Unknown) {
 +        if (current > last) {
 +          order = Ascend;
 +        } else if (current < last) {
 +          order = Descend;
 +        }
 +      } else if (order == Ascend) {
 +        if (last > current) {
 +          return false;
 +        }
 +      } else {
 +        if (last < current) {
 +          return false;
 +        }
 +      }
 +    }
 +
 +    return true;
 +  }
 +};
 | 
