当前位置: 首页 > news >正文

hot100_300. 最长递增子序列

hot100_300. 最长递增子序列

  • 思路
    • 动态规划

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。
子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

示例 1:
输入:nums = [10,9,2,5,3,7,101,18]
输出:4
解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。

示例 2:
输入:nums = [0,1,0,3,2,3]
输出:4

示例 3:
输入:nums = [7,7,7,7,7,7,7]
输出:1

思路

dp[j] 表示 下标 j 处,递增子串的最大长度,
j<i
遍历 j
dp[i] = max(dp[j]) + 1,其中 num[j]<num[i]

动态规划

自己写的

class Solution {
    public int lengthOfLIS(int[] nums) {
        int n = nums.length;
        int[] dp = new int[n+1];
        for(int i=0;i<n;i++){
            int max = 0;
            for(int j=0;j<i;j++){
                if(nums[j]<nums[i] && j<i){
                    if(max < dp[j]+1){
                        max = dp[j]+1;
                    }
                }
            }
            dp[i] = max;
        }
        int max = 0;
        for(int i=0;i<n;i++){
            if(max < dp[i]){
                max = dp[i];
            }
        }

        return max+1;
    }
}

官方答案

class Solution {
    public int lengthOfLIS(int[] nums) {
        if(nums.length == 0){
            return 0;
        }
        int[]dp = new int[nums.length];
        dp[0] = 1;
        int maxans = 1;
        for(int i=1;i<nums.length;i++){
            dp[i] = 1;
            for(int j=0;j<i;j++){
                if(nums[i]>nums[j]){
                    dp[i] = Math.max(dp[i],dp[j]+1);
                }
            }
            maxans = Math.max(maxans,dp[i]);
        }
        return maxans;
    }
}

相关文章:

  • 使用FastAPI进行可视化部署
  • 应用层协议HTTP
  • 理解 预训练、微调、分布式训练
  • EWM 自动补充库存
  • 《操作系统 - 清华大学》8 -4:进程管理:进程控制结构
  • 为什么要学排序?
  • rust学习笔记5-所有权机制
  • C/C++数组的字符串与字符数组习题
  • 【蓝桥杯】第十五届省赛大学真题组真题解析
  • QT闲记-状态栏,模态对话框,非模态对话框
  • DeepSeek 助力 Vue 开发:打造丝滑的滑块(Slider)
  • VulnOSv2 靶机渗透测试
  • 基于 Python Django 的校园互助平台(附源码,文档)
  • python使用httpx_sse调用sse流式接口对响应格式为application/json的错误信息的处理
  • 内网网络安全的解决之道
  • Linux MySQL 8.0.29 忽略表名大小写配置
  • 深入理解 DOM 和 CSSOM:网页渲染的核心
  • PAT甲级 1017 Queueing at Bank
  • easyexcel和poi同时存在版本问题,使用easyexcel导出excel设置日期格式
  • ZJYYC2510. 蓝红球
  • 子公司神州信息十年来首次亏损,神州控股遭国有股东广州城投派驻董事问责
  • 美联储官员:货币政策不会立即改变,金融市场波动或致美国经济增长承压
  • “80后”王建浩履新三沙市委常委、组织部部长、秘书长
  • 政治局会议:优化存量商品房收购政策,持续巩固房地产市场稳定态势
  • 由重商主义观察世界现代化历程
  • 福耀科技大学发布招生章程:专业培养语种为英语,综合改革省份选考需含物化