栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【LeetCode笔记 - 每日一题】334. 递增的三元子序列(Java、偏思路)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【LeetCode笔记 - 每日一题】334. 递增的三元子序列(Java、偏思路)

文章目录

题目描述思路 && 代码

题目描述

可以转换成300. 最长递增子序列,再看结果是否大于3但上述写法O(N)复杂度实现不了,还是得用针对这道题的写法(见下)

思路 && 代码

学习了评论区大佬的写法,O(N) && O(1)代码挺短的,但思路还是需要看一会= =。注意:first 并不是何时都在 second 之后的。两个值之间的联系时紧时松,随着迭代进行不断维护。重点代码只有循环部分,多看看多理解理解…码了半天字,感觉描述得不太好,还是交给读者从代码中理解吧~

class Solution {
    public boolean increasingTriplet(int[] nums) {
        // first 始终记录最小元素,second 记录某子序列第二大数
        int first = Integer.MAX_VALUE, second = Integer.MAX_VALUE;
        
        for(int i : nums) {
            if(i <= first) first = i; // 更新 first
            else if(i <= second) second = i; // 更新 second
            else return true; // 当前为第三个数字(因为既不是第一个也不是第二个)
        }

        return false; // 没找到!
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号