首页 > 其他分享 >递增的三元子序列

递增的三元子序列

时间:2024-11-16 12:18:29浏览次数:3  
标签:rightMax nums int 递增 三元组 序列 false 三元 leftMin

力扣链接:. - 力扣(LeetCode)

给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。

如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。

示例1:

输入:nums = [1,2,3,4,5]
输出:true
解释:任何 i < j < k 的三元组都满足题意

示例2:

输入:nums = [5,4,3,2,1]
输出:false
解释:不存在满足题意的三元组

示例3:

输入:nums = [2,1,5,0,4,6]
输出:true
解释:三元组 (3, 4, 5) 满足题意,因为 nums[3] == 0 < nums[4] == 4 < nums[5] == 6

java代码如下:

public class Solution {
    public boolean increasingTriplet(int[] nums) {
        int n = nums.length;
        if (n < 3){
            return false;
        }
        //右边最小的
        int[] leftMin = new int[n];
        leftMin[0] = nums[0];
        //
        for (int i = 1; i < n; i++){
            leftMin[i] = Math.min(leftMin[i - 1], nums[i]);
        }
        int[] rightMax = new int[n];
        rightMax[n - 1] = nums[n - 1];
        for (int i = n - 2; i >= 0; i--){
            rightMax[i] = Math.max(rightMax[i + 1], nums[i]);
        }
        for (int i = 1; i < n-1; i++){
            if (nums[i] > leftMin[i-1] && nums[i] < rightMax[i+1]){
                return true;
            }
        }
        return false;
    }
}

 

标签:rightMax,nums,int,递增,三元组,序列,false,三元,leftMin
From: https://blog.csdn.net/weixin_44331433/article/details/143815379

相关文章

  • Java反序列化-Commons Collections3利用链分析详解
    介绍CC3与CC1和CC6的主要区别在于,CC1和CC6依赖反射机制来执行Runtime.getRuntime().exec()等危险命令,而如果服务器将这些方法列入黑名单,这两种方式就会失效。相比之下,CC3通过类加载器动态加载恶意类来执行危险函数,绕过黑名单限制,从而达到命令执行的目的。公众号:T......
  • 【Pikachu】PHP反序列化RCE实战
    痛是你活着的证明1.PHP反序列化概述在理解PHP中serialize()和unserialize()这两个函数的工作原理之前,我们需要先了解它们各自的功能及其潜在的安全隐患。接下来,我会对相关概念做更详细的扩展解释。1.序列化serialize()序列化(serialization)是指将一个对象或数据......
  • P9870 [NOIP2023] 双序列拓展 题解
    P9870[NOIP2023]双序列拓展题解NOIP2023T3,特殊性质题。什么是特殊性质题?就是题目给出了你极其神秘的性质,从而引导你想出正解。本篇题解将从部分分的角度,一步步讲述部分分与正解的关系。这样看的话,本题会变得十分简单。\(\text{Task}1∼7,O(Tnm)\)简化题意其实就是要求......
  • java 反序列化 cc7 复现
    复现环境:common-collections版本<=3.2.1,java版本随意.cc7就是cc6换了一个出口,整体的逻辑没有太大的变化.在Lazymap之前的还那样,我们从如何触发Lazymap的get方法开始看起.AbstractMap看他的equals方法publicbooleanequals(Objecto){if(o==this)ret......
  • 最长回文子序列
    *************C++题目来源:516.最长回文子序列-力扣(LeetCode)*************看一下题目这个让我想到前几天做过的最长回文子串,那个简单的中心拓展法我不会,头铁做成了dp数组,有点忘了,重新做一下。最长回文子串的题目是:给定一个字符串s,找出其最长的回文子串。简单地找......
  • java 反序列化 cc5复现
    复现环境:common-collections版本<=3.2.1,java版本随意.cc5则是cc6的一个变形,换了一个出口.直接从有变化的位置开看.TiedMapEntrypublicclassTiedMapEntryimplementsMap.Entry,KeyValue,Serializable{privatestaticfinallongserialVersionUID=-84538693613......
  • P2501 [HAOI2006] 数字序列
    [题目链接]([P2501HAOI2006]数字序列-洛谷|计算机科学教育新生态)首先是第一问,直接求不好求,我们们考虑求不用更改的数量,发现有这个性质,如果,a[i]-a[j]<abs(j-i)两个数的差值能满足他们之间有足够多数的情况,例如1453,取1和3,那么就有2<3,中间的4和5怎么改也不......
  • 代码随想录算法训练营day46| 647. 回文子串 516.最长回文子序列
    学习资料:https://programmercarl.com/0647.回文子串.html#算法公开课动态规划最后一部分:回文字符串子串是从原字符串中连续截取的;子序列可以是从原字符串中不连续提取出元素构成的学习记录:647.回文子串(难构造dp数组,dp数组是从原字符串截取[i,j]范围的片段是否是回文字符串,布尔......
  • java 反序列化 cc3 复现
    版本要求:jdk版本<=8u65,common-collections版本<=3.2.1在很多时候,Runtime会被黑名单禁用.在这些情况下,我们需要去构造自定义的类加载器来加载自定义的字节码.类加载机制双亲委派这里直接粘别人的了.实现一个自定义类加载器需要继承ClassLoader,同时覆盖findClass方法......
  • java 反序列化 cc4 复现
    复现环境:jdk<=8u65,commonsCollections=4.0CommonsCollections4.x版本移除了InvokerTransformer类不再继承Serializable,导致无法序列化.但是提供了TransformingComparator为CommonsCollections3.x所没有的,又带来了新的反序列化危险.cc4的执行命令部分依然沿用cc3的TemplatesI......