LeetCode 896. 单调数列
描述
如果数组是单调递增或单调递减的,那么它是 单调 的。
如果对于所有 i <= j,nums[i] <= nums[j],那么数组 nums 是单调递增的。 如果对于所有 i <= j,nums[i]> = nums[j],那么数组 nums 是单调递减的。
当给定的数组 nums 是单调数组时返回 true,否则返回 false。
示例 1:
输入:nums = [1,2,2,3]
输出:true
示例 2:
输入:nums = [6,5,4,4]
输出:true
示例 3:
输入:nums = [1,3,2]
输出:false
提示:
1 <= nums.length <= 105
-105 <= nums[i] <= 105
题解
class Solution {
public boolean isMonotonic(int[] nums) {
// 数组长度
int n = nums.length;
// 标记起初是递增还是递减
boolean flag = true;
int index = 0;
// 判断初始递增还是递减
while(index<n-1){
if(nums[index]<nums[index+1]){
break;
}else if(nums[index]>nums[index+1]){
flag = false;
break;
}else{
index++;
}
}
// 根据标记继续判断
for(int i = index; i<n-1 ;i++){
if(flag){
if(nums[i]>nums[i+1]){
return false;
}
}else{
if(nums[i]<nums[i+1]){
return false;
}
}
}
// 单调 返回true
return true;
}
}