贪心算法:6.递增的三元子序列

题目链接:334. 递增的三元子序列(中等)

算法原理:

解法:贪心

Java代码:

java 复制代码
import java.util.ArrayList;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-11-02
 * Time: 17:56
 */
class Solution {
    //334. 递增的三元子序列
    //模仿着上一题的思路写的,基本上一模一样,就是加了个判断
    //对二分的知识有点遗忘了,一边看着300的题的代码一边写的
    public boolean increasingTriplet(int[] nums) {
        ArrayList<Integer> ret=new ArrayList<>();
        int n=nums.length;
        ret.add(nums[0]);
        for(int i=1;i<n;i++){
            if(nums[i]>ret.get(ret.size()-1)) ret.add(nums[i]);
            else{
                int left=0,right=ret.size()-1;
                while(left<right){
                    int mid=left+(right-left)/2;
                    if(ret.get(mid)<nums[i]) left=mid+1;
                    else right=mid;
                }
                ret.set(left,nums[i]);
            }
            if(ret.size()==3) return true;
        }
        return false;
    }
    //吴小哲的解法,更易懂些
    public boolean increasingTriplet(int[] nums) {
        int a=nums[0],b=Integer.MAX_VALUE;
        for(int i=1;i<nums.length;i++){
            if(nums[i]>b) return true;
            else if(nums[i]>a) b=nums[i];
            else a=nums[i];
        }
        return false;
    }
}
相关推荐
炽烈小老头3 分钟前
【每天学习一点算法 2026/01/22】杨辉三角
学习·算法
黎雁·泠崖3 分钟前
Java static入门:概述+静态变量特点与基础实战
java·开发语言
MicroTech20254 分钟前
微算法科技(NASDAQ :MLGO)量子安全区块链:PQ-DPoL与Falcon签名的双重防御体系
科技·算法·安全
努力也学不会java5 分钟前
【Spring Cloud】 服务注册/服务发现
人工智能·后端·算法·spring·spring cloud·容器·服务发现
一条大祥脚8 分钟前
26.1.21 根号分治 相向双指针
java·开发语言·redis
迦蓝叶16 分钟前
JDBC元数据深度实战:企业级数据资源目录系统构建指南
java·jdbc·企业级·数据资源·数据血缘·数据元管理·构建指南
chilavert31816 分钟前
技术演进中的开发沉思-327 JVM:内存区域与溢出异常(下)
java·jvm
冲刺逆向16 分钟前
【js逆向案例六】创宇盾(加速乐)通杀模版
java·前端·javascript
POLITE317 分钟前
Leetcode 146. LRU 缓存 (Day 13)
算法·leetcode·缓存