贪心算法:5.最长递增子序列

题目链接:300. 最长递增子序列(中等)

算法原理:

解法+交换论证证明:贪心

Java代码:

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

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-11-01
 * Time: 00:02
 */
class Solution {
    //300.最长递增子序列
    public int lengthOfLIS(int[] nums) {
        //贪心解法:自己真写不出来,看了吴小哲的代码还琢磨琢磨才弄上的
        //当已经是2.4.7.13时再来个8是把13覆盖掉的
        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)/2;
                    if(ret.get(mid)<nums[i]) left=mid+1;
                    else right=mid;
                }
                ret.set(left,nums[i]);
            }
        }
        return ret.size();
    }
}
相关推荐
紧跟先前的步伐11 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
学长毕设11 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
吠品12 小时前
智谱开源 ZCode 之后,真正的考试才开始
单片机·嵌入式硬件·1024程序员节
zzu123zsw12 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
日日大王学编程12 小时前
#Feed 流项目复盘:Redis 时间线缓存与 Outbox 消息可靠性设计
golang·1024程序员节
UIU11413 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
源码集结号13 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场13 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi13 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
啃瓜子的松鼠14 小时前
泛微OAe9-后端二开异步调用
java