zoukankan      html  css  js  c++  java
  • Leetcode 334.递增的三元子序列

    递增的三元子序列

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

    数学表达式如下:

    如果存在这样的 i, j, k,  且满足 0 ≤ i < j < kn-1
    使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false

    说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)

    示例 1:

    输入: [1,2,3,4,5]

    输出: true

    示例 2:

    输入: [5,4,3,2,1]

    输出: false

     

    "中间"那个数是很重要的。所以就是用m来代替。m之前始终有个比他小的数(l,或曾经的l)。所以如果当前遍历到的元素大于了m,那么就return true。

     

     1 class Solution {
     2     public boolean increasingTriplet(int[] nums) {
     3         int numsSize=nums.length;
     4         if(numsSize<3) return false;
     5         int l=nums[0],m=Integer.MAX_VALUE;
     6         for(int i=1;i<numsSize;i++){
     7             int a=nums[i];
     8             if(a<=l) l=a;
     9             else if(a<m) m=a;
    10             else if(a>m) return true;
    11         }
    12         return false;
    13     }
    14 }
  • 相关阅读:
    linux系统cpu和内存占用率
    虚拟机网卡设置
    C语言中打印返回值
    MQTT_DEMO
    MQTT-C-UDP_PUB
    MQTT-C-PUB
    结构体指针用法
    linux系统如何操作隐藏文件
    mqtt学习笔记
    XML文件的读取----cElementTree
  • 原文地址:https://www.cnblogs.com/kexinxin/p/10235248.html
Copyright © 2011-2022 走看看