zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 775 全局倒置与局部倒置(分析题)

    775. 全局倒置与局部倒置

    数组 A 是 [0, 1, …, N - 1] 的一种排列,N 是数组 A 的长度。全局倒置指的是 i,j 满足 0 <= i < j < N 并且 A[i] > A[j] ,局部倒置指的是 i 满足 0 <= i < N 并且 A[i] > A[i+1] 。

    当数组 A 中全局倒置的数量等于局部倒置的数量时,返回 true 。

    示例 1:

    输入: A = [1,0,2]
    输出: true
    解释: 有 1 个全局倒置,和 1 个局部倒置。
    示例 2:

    输入: A = [1,2,0]
    输出: false
    解释: 有 2 个全局倒置,和 1 个局部倒置。
    注意:

    A 是 [0, 1, …, A.length - 1] 的一种排列
    A 的长度在 [1, 5000]之间
    这个问题的时间限制已经减少了。

    PS:
    分析题
    数组A中的元素是0到n-1
    这个题的两种倒置,一种是差1的倒置,一种是差好几位的倒置
    我们可以这么看,差1的倒置,只能一个,差好几位的倒置如果差的位置大于1
    那么差好几位的倒置一定会比差1的倒置多的
    所以这个题,就变成了,当前的位置如果比他的值差了2,那么就不相等了

    class Solution {
          public boolean isIdealPermutation(int[] A) {
            int N = A.length;
            int floor = N;
            for (int i=N-1; i>=2; --i) {
                floor = Math.min(floor, A[i]);
                if (A[i-2] > floor) return false;
            }
            return true;
        }
    }
    
  • 相关阅读:
    SDK安装教程
    appscan下载
    app测试-兼容性测试与云测试技术
    app测试之耗电量测试
    App测试1-App测试概述
    app测试2--monkey稳定性测试
    app测试1--常用adb命令
    常用dos命令
    jmeter(二)脚本录制
    jmeter基础介绍
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074575.html
Copyright © 2011-2022 走看看