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).