贪心算法: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;
    }
}
相关推荐
若鱼19194 分钟前
SpringBoot4.0新特性-Observability让生产环境更易于观测
java·spring
觉醒大王13 分钟前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
偷吃的耗子17 分钟前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn
努力学编程呀(๑•ี_เ•ี๑)21 分钟前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
码农小卡拉30 分钟前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
向上的车轮38 分钟前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net
Dragon Wu39 分钟前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
跳动的梦想家h1 小时前
环境配置 + AI 提效双管齐下
java·vue.js·spring
坚持就完事了1 小时前
Java中的集合
java·开发语言
wjhx1 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt