D66 896. Monotonic Array

题目链接

896. Monotonic Array

题目分析

给定一个数字数组,判断是否单调递增或递减。

单调递增即,对于第n位数字,其后面的数组都大于或等于它。
单调递减则为,其后面的数组都小于它。

思路

先要找到头两个不同的数字,用来判断该数组是单调递增还是递减。

判断后,再逐个遍历。若为单调递增,那么不能存在小于前一个数字的值。若为单调递减,则不能出现大于前一个数组的值。

最终代码

<?php
class Solution {

    /**
     * @param Integer[] $A
     * @return Boolean
     */
    function isMonotonic($A) {
        $prev = array_shift($A);
        $greater = null;
        foreach($A as $val){
            if(is_null($greater)){
                if($val>$prev){
                    $greater = true;
                }
                else if($val<$prev){
                    $greater = false;
                }
            }
            else{
                if($greater && $val<$prev){
                    return false;
                }
                else if(!$greater && $val>$prev){
                    return false;
                }
            }
            $prev = $val;
        }
        return true;
    }
}

若觉得本文章对你有用,欢迎用爱发电资助。


skys215
42 声望26 粉丝