Monotonic Array

easy array

Problem

Return true iff the array is monotonic (entirely non-increasing or entirely non-decreasing).

Inputnums = [1,2,2,3]
Outputtrue
Track two booleans: inc (allowed to keep increasing) and dec.

def isMonotonic(nums):
    inc = dec = True
    for i in range(1, len(nums)):
        if nums[i] > nums[i - 1]: dec = False
        if nums[i] < nums[i - 1]: inc = False
    return inc or dec
function isMonotonic(nums) {
  let inc = true, dec = true;
  for (let i = 1; i < nums.length; i++) {
    if (nums[i] > nums[i - 1]) dec = false;
    if (nums[i] < nums[i - 1]) inc = false;
  }
  return inc || dec;
}
class Solution {
    public boolean isMonotonic(int[] nums) {
        boolean inc = true, dec = true;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] > nums[i - 1]) dec = false;
            if (nums[i] < nums[i - 1]) inc = false;
        }
        return inc || dec;
    }
}
bool isMonotonic(vector<int>& nums) {
    bool inc = true, dec = true;
    for (int i = 1; i < (int)nums.size(); i++) {
        if (nums[i] > nums[i - 1]) dec = false;
        if (nums[i] < nums[i - 1]) inc = false;
    }
    return inc || dec;
}
Time: O(n) Space: O(1)