zoukankan      html  css  js  c++  java
  • 775. Global and Local Inversions

    We have some permutation A of [0, 1, ..., N - 1], where N is the length of A.

    The number of (global) inversions is the number of i < j with 0 <= i < j < N and A[i] > A[j].

    The number of local inversions is the number of i with 0 <= i < N and A[i] > A[i+1].

    Return true if and only if the number of global inversions is equal to the number of local inversions.

    Example 1:

    Input: A = [1,0,2]
    Output: true
    Explanation: There is 1 global inversion, and 1 local inversion.
    

    Example 2:

    Input: A = [1,2,0]
    Output: false
    Explanation: There are 2 global inversions, and 1 local inversion.
    

    Note:

    • A will be a permutation of [0, 1, ..., A.length - 1].
    • A will have length in range [1, 5000].
    • The time limit for this problem has been reduced.
    class Solution {
        public boolean isIdealPermutation(int[] A) {
            int glb = 0, loc = 0;
            for(int i = 0; i < A.length - 1; i++) {
                if(A[i] > A[i + 1]) loc++;
                for(int j = i + 1; j < A.length; j++) {
                    if(A[i] > A[j]) glb++;
                }
            }
            return glb == loc;
        }
    }

    O(n2), TLE

    class Solution {
        public boolean isIdealPermutation(int[] A) {
            int cmax = 0;
            for(int i = 0; i < A.length - 2; i++) {
                cmax = Math.max(cmax, A[i]);
                if(cmax > A[i + 2]) return false;
            }
            return true;
        }
    }

    local是前大于后,比如2>1, 但是如果是3,2,1,这时候local是2,global已经是3了,所以不行。1,0,2这种才行。所以有如下:

     是local一定是global,因为global很容易,所以要返回true一定不能找到max(A[i]) > A[i + 2], 持续找,如果找不到就返回true,否则返回false

    public boolean isIdealPermutation(int[] A) {
    
            for (int i = 0; i < A.length; i++) {
                if (Math.abs(i - A[i]) > 1)
                    return false;
            }
    
            return true;
        }

     https://leetcode.com/problems/global-and-local-inversions/discuss/1143422/JS-Python-Java-C%2B%2B-or-Simple-3-Line-Solutions-w-Explanation

  • 相关阅读:
    15年双11手淘前端技术分享(转)
    高程第9章 客户端检测
    高程8.4 screen对象 8.5history对象 8.6小结
    高程8.2location对象 8.3navigator对象
    高程第8章 BOM 8.1window对象
    高程 7.3 模仿块级作用域 7.4私有变量 7.5小结
    高程 第7章函数表达式 7.1递归 7.2闭包
    23、GoAccess分析Nginx日志
    11、Nginx反向代理服务
    10、LNMP架构
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/14620113.html
Copyright © 2011-2022 走看看