• 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.

    思路:

    Key insights:

    • every local inversion is also a global inversion
    • so “local inversions == global inversions” can be interpreted as “there are only local inversions”
    • if there are only local inversions, the array will be sorted after making all local inversions
    • if there are inversions that are not local, the array won’t be sorted after making all local inversions
    class Solution {
        public boolean isIdealPermutation(int[] A) {
            for(int i = 0;i < A.length-1;){
                if(A[i]>A[i+1]){
                    int temp = A[i];
                    A[i] =A[i+1];
                    A[i+1] = temp;
                    i += 2;
                }else{
                    i++;
                }
            }
            for(int i = 0;i < A.length -1; i++){
                if(A[i]>A[i+1]){
                    return false;
                }
            }
            return true;
        }
    }
    
    
    public class Main {
        public static void main(String[] args){
            Solution solution = new Solution();
            int[] A = {1,2,0};
            solution.isIdealPermutation(A);
        }
    }
    

      

  • 相关阅读:
    POJ 1990 MooFest
    python的unittest測试框架的扩展浅谈
    星云測试- Android应用深度体检专业平台
    HDOJ 1507 Uncle Tom&#39;s Inherited Land*
    产品设计
    Linux网络编程--wireshark分析TCP包头的格式
    java读取中文分词工具(一)
    为datatable添加自增列
    Oracle 自己主动内存管理 SGA、PGA 具体解释
    TCP/IP基础
  • 原文地址:https://www.cnblogs.com/lxk2010012997/p/8419459.html
Copyright © 2020-2023  润新知