美文网首页leetcode
896. Monotonic Array

896. Monotonic Array

作者: Casin | 来源:发表于2018-09-15 20:07 被阅读0次

    LeetCode Monotonic Array【Easy】

    • An array is monotonic if it is either monotone increasing or monotone decreasing.

    • An array A is monotone increasing if for all i <= j, A[i] <= A[j]. An array A is monotone decreasing if for all i <= j, A[i] >= A[j].

    • Return true if and only if the given array A is monotonic.
      Example 1:

    Input: [1,2,2,3]
    Output: true
    

    Example 2:

    Input: [6,5,4,4]
    Output: true
    

    Example 3:

    Input: [1,3,2]
    Output: false
    

    Example 4:

    Input: [1,2,4,5]
    Output: true
    Example 5:
    

    Example 5:

    Input: [1,1,1]
    Output: true
    

    Note:

    1. 1 <= A.length <= 50000
    2. -100000 <= A[i] <= 100000

    解决

    该题主要是求给定一个数组,判断该数组是否是单调数组,这里给出两种解决方案,其中方案二为递归方法。

    代码

    常规方案

       /**
       *  常规方案
       * @param A
       * @return
       */
      public boolean isMonotonic(int[] A) {
    
          //ascStatus 递增 默认true
          //descStatus 递减 默认true
          boolean ascStatus = true;
          boolean descStatus = true;
          if (A.length == 1||A.length==0) {
              return true;
          }
          //循环内判断递增或者递减
          for (int i = 0; i < A.length - 1; i++) {
              if (A[i] < A[i + 1]) {
                  ascStatus = false;
              }
              if (A[i] > A[i + 1]) {
                  descStatus = false;
              }
          }
          return (ascStatus||descStatus);
      }
    

    递归方案

     /**
       * 递归方案
       * @param A
       * @return
       */
      public boolean isMonotonic(int[] A) {
          int len = A.length;
          return isDecrease(A,len)||isIncrease(A,len);
      }
      /**
       * 递增判断  递归
       * @param A
       * @param len
       * @return
       */
      public boolean isIncrease(int[] A,int len){
          if(len==1){
              return true;
          }
          return (A[len-2]<=A[len-1]&&isIncrease(A,len-1));
      }
    
      /**
       * 递减判断 递归
       * @param A
       * @param len
       * @return
       */
      public boolean isDecrease(int[] A,int len){
          if(len==1){
              return true;
          }
          return (A[len-2]>=A[len-1]&&isDecrease(A,len-1));
      }
    

    相关文章

      网友评论

        本文标题:896. Monotonic Array

        本文链接:https://www.haomeiwen.com/subject/rpptnftx.html