贪心算法: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;
    }
}
相关推荐
陈皮波比茶13 小时前
Swagger
java
小闫BI设源码14 小时前
Elasticsearch面试必看:如何让客户端精准选择节点高效执行请求?
java·elasticsearch·面试宝典·深入解析
摇滚侠14 小时前
《SpringBoot 3:入门与应用实战》第 5 章 使用 Spring Boot 阅读笔记 9
java·spring boot·笔记
进阶的小名14 小时前
Spring AI 2.0 探索:多 OpenAI-Compatible 模型接入,以及下一代 Session 记忆管理
java·人工智能·后端·gpt·spring·ai·chatgpt
yaoxin52112315 小时前
503. Java 反射 - 编写 ServiceFactory 类
java·开发语言·python
AI备案指南-满满15 小时前
人工智能拟人化互动服务安全自评估报告的评估要点有哪些?
人工智能·算法·安全·机器人·大模型备案·算法备案
考虑考虑15 小时前
Java三元表达式注意
java·后端·java ee
程序员小八77716 小时前
Java 快速转 Go
java·python·golang
职场的momo16 小时前
11个后端与AI岗位同时开放:Java、网关、推理优化怎么匹配
java·开发语言·人工智能