Problem
An array is monotonic if it is either monotone increasing or monotone decreasing.
An array nums
is monotone increasing if for all i <= j
, nums[i] <= nums[j]
. An array nums
is monotone decreasing if for all i <= j
, nums[i] >= nums[j]
.
Given an integer array nums
, return true
** if the given array is monotonic, or false
otherwise**.
Example 1:
Input: nums = [1,2,2,3]
Output: true
Example 2:
Input: nums = [6,5,4,4]
Output: true
Example 3:
Input: nums = [1,3,2]
Output: false
Constraints:
1 <= nums.length <= 10^5
-10^5 <= nums[i] <= 10^5
Solution (Java)
class Solution {
public boolean isMonotonic(int[] nums) {
int i = 0;
for (; i < nums.length - 1; i++) {
if (nums[i] > nums[i + 1]) {
break;
}
}
if (i == nums.length - 1) {
return true;
}
i = 0;
for (; i < nums.length - 1; i++) {
if (nums[i] < nums[i + 1]) {
break;
}
}
return i == nums.length - 1;
}
}
Explain:
nope.
Complexity:
- Time complexity : O(n).
- Space complexity : O(n).