# 896. 单调数列

# 题目

如果数组是单调递增或单调递减的,那么它是单调的。

如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。

当给定的数组 A  是单调数组时返回 true,否则返回 false

# 题解

# 一次遍历

var isMonotonic = function(A) {
  let inc = true,
    dec = true;
  const n = A.length;
  for (let i = 0; i < n - 1; ++i) {
    if (A[i] > A[i + 1]) {
      inc = false;
    }
    if (A[i] < A[i + 1]) {
      dec = false;
    }
  }
  return inc || dec;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 两次遍历

var isMonotonic = function(A) {
  return isSorted(A) || isSorted(A.reverse());
};

function isSorted(arr) {
  return arr.slice(1).every((item, i) => arr[i] <= item);
}
1
2
3
4
5
6
7