# 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
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
2
3
4
5
6
7