C/C++教程

896. Monotonic Array

本文主要是介绍896. Monotonic Array,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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;
    }
}

 

这篇关于896. Monotonic Array的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!