【贪心算法】334. 递增的三元子序列

334. 递增的三元子序列

解题思路

  • 找到的递增序列 不一定是连续的
  • 固定第一个数first 然后开始向后找第二个数second
  • 要求second 大于 first 找到之后 向后找第三个数third 找到 返回true
  • 如果third < first 那么更新first = third 重新找
  • 如果只是third > first 更新second
java 复制代码
 class Solution {
    public boolean increasingTriplet(int[] nums) {
        // 找到的递增序列 不一定是连续的
        // 固定第一个数first  然后开始向后找第二个数second
        // 要求second 大于 first 找到之后 向后找第三个数third 找到 返回true
        // 如果third < first 那么更新first = third 重新找
        // 如果只是third > first 更新second  

        int first = nums[0];
        int second = Integer.MAX_VALUE;
        for(int i = 1; i < nums.length; i++){
            if(nums[i] > second){
                // 说明找到了
                return true;
            }

            if(nums[i] < first){
                first = nums[i];
            }else if(nums[i] > first){
                second = nums[i];
            }
        }


        return false;
    }
}
相关推荐
鹿角片ljp1 小时前
LeetCode 236. 二叉树的最近公共祖先|递归后序
算法
luj_17681 小时前
大律师考核应重能力与科技素养
c语言·开发语言·c++·经验分享·算法
无定义_1 小时前
Floyd——Warshall
算法
带多刺的玫瑰2 小时前
Leecode#9刷题之回文数
数据结构·算法
泯泷2 小时前
手搓JSVM第 5 篇:写第一个编译器:从 AST 生成 IR
前端·javascript·算法
泯泷2 小时前
手搓JSVM第 7 篇:控制流:if、while 与 jump
前端·javascript·算法
泯泷3 小时前
手搓JSVM第 6 篇:把 IR 编成字节码:emit 与 label fixup
前端·javascript·算法
泯泷3 小时前
手搓JSVM第 3 篇:从栈式 VM 到寄存器式 VM:为什么我们选择寄存器
前端·javascript·算法
泯泷3 小时前
第 4 篇:让 VM 支持变量:Slot、Environment 与 TDZ
前端·javascript·算法
Asize3 小时前
54. 螺旋矩阵
算法