My solution:

class Solution {
    public boolean isMonotonic(int[] nums) {
        if(nums==null||nums.length<3){
            return true;
        }
        int first = nums[0];
        int second = nums[nums.length-1];
        if(first<second){
            return checkMonotonic(nums, true);
        }else{
            return checkMonotonic(nums, false);
        }
    }
    private boolean checkMonotonic(int[] nums, boolean increase){
        if(increase){
            for(int i=0;i<nums.length-1;i++){
                if(nums[i]>nums[i+1]){
                    return false;
                }
            }
        }else{
            for(int i=0;i<nums.length-1;i++){
                if(nums[i]<nums[i+1]){
                    return false;
                }
            }
        }
        return true;
    }
}

A simple solution:

class Solution {
    public boolean isMonotonic(int[] nums) {
        if(nums==null||nums.length<3){
            return true;
        }
        int inc=0, dec=0;
        for(int i=0;i<nums.length-1;i++){
            if(nums[i]<nums[i+1])
                inc++;
            else if(nums[i]>nums[i+1])
                dec++;
            else{
                inc++;
                dec++;
            }
        }
        return inc==nums.length-1 || dec==nums.length-1;
    }
}

 

posted on 2022-04-21 01:33  阳光明媚的菲越  阅读(14)  评论(0编辑  收藏  举报