zoukankan      html  css  js  c++  java
  • 896. Monotonic Array单调数组

    [抄题]:

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

    An array A is monotone increasing if for all i <= jA[i] <= A[j].  An array A is monotone decreasing if for all i <= jA[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:

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

     [暴力解法]:

    时间分析:

    空间分析:

     [优化后]:

    时间分析:

    空间分析:

    [奇葩输出条件]:

    [奇葩corner case]:

    [思维问题]:

    想到了用inc dec变量来记录,以为要判断第一个:不用,两边同时加就行了

    [英文数据结构或算法,为什么不用别的数据结构或算法]:

    [一句话思路]:

    [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

    [画图]:

    [一刷]:

    [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

      [五分钟肉眼debug的结果]:

    [总结]:

    自己跑Case很重要

    [复杂度]:Time complexity: O(N) Space complexity: O(1)

    [算法思想:迭代/递归/分治/贪心]:

    [关键模板化代码]:

    [其他解法]:

    [Follow Up]:

    [LC给出的题目变变变]:

     [代码风格] :

     [是否头一次写此类driver funcion的代码] :

     [潜台词] :

    class Solution {
        public boolean isMonotonic(int[] A) {
            //corner case
            if (A == null || A.length == 0) 
                return true;
            
            //for loop
            int inc = 0; int dec = 0;
            /*
                1 2 2 3
            inc   1 2 3
            dec     1 
            */
            for (int i = 1; i < A.length; i++) {
                if (A[i] > A[i -1]) inc++;
                else if (A[i] < A[i -1]) dec++;
                else {
                    inc++;
                    dec++;
                }
            }
            //return
            return (inc == A.length - 1) || (dec == A.length - 1);
        }
    }
    View Code
  • 相关阅读:
    拥有5大核心竞争力的华为云GaussDB,成SACC2021最靓那一个…
    云小课 | 玩转HiLens Studio之手机实时视频流调试代码
    浅析决策树的生长和剪枝
    OCR性能优化:从认识BiLSTM网络结构开始
    520特辑丨码神VS爱神:盘点程序员的四大男友力,你偏爱哪一种?
    jQuery 筛选方法
    jQuery 选择器
    jQuery 基础知识
    JavaScript 小工具
    JavaScript Event
  • 原文地址:https://www.cnblogs.com/immiao0319/p/9808446.html
Copyright © 2011-2022 走看看