An array is monotonic if it is either monotone increasing or monotone decreasing.
An array A
is monotone increasing if for all i <= j
, A[i] <= A[j]
. An array A
is monotone decreasing if for all i <= j
, A[i] >= A[j]
.
Return true
if and only if the given array A
is monotonic.
Input: [1,2,2,3] Output: true
Input: [6,5,4,4] Output: true
Input: [1,3,2] Output: false
Input: [1,2,4,5] Output: true
Input: [1,1,1] Output: true
1 <= A.length <= 50000
-100000 <= A[i] <= 100000
impl Solution {
pub fn is_monotonic(a: Vec<i32>) -> bool {
let mut flag = 0;
for i in 1..a.len() {
if a[i - 1] != a[i] {
if flag * (a[i - 1] - a[i]) >= 0 {
flag = a[i - 1] - a[i];
} else {
return false;
}
}
}
true
}
}
impl Solution {
pub fn is_monotonic(a: Vec<i32>) -> bool {
let mut sort_a = a.clone();
sort_a.sort_unstable();
if sort_a == a {
true
} else {
sort_a.reverse();
sort_a == a
}
}
}