代码随想录刷题记录day46 最长递增子序列+最长连续递增序列+最长重复子数组

news2024/11/22 16:38:45

代码随想录刷题记录day46 最长递增子序列+最长连续递增序列+最长重复子数组

300. 最长递增子序列

在这里插入图片描述

思想

1.dp数组的定义

dp[i]表示[0,i]区间的最长递增子序列

2.递推公式

如果num[i]>num[j];dp[i]=dp[j]+1

其中j从0到i-1遍历

3.初始化

所有的都初始化为1

4.遍历顺序

从前到后 依靠前一个的状态

5.打印数组

在这里插入图片描述

代码

class Solution {
    public int lengthOfLIS(int[] nums) {
        //dp数组的定义
        //dp[i]表示[0,i]区间的最长严格递增子序列的长度

        //递归公式
        //dp[i]=从0到i-1的最长子序列+1

        //初始化
        int[] dp=new int[nums.length];
        Arrays.fill(dp,1);
        int res=0;
        if(nums.length<=1) return nums.length;
        

        for(int i=1;i<nums.length;i++){
            for(int j=0;j<i;j++){
                if(nums[i]>nums[j]){
                    dp[i]=Math.max(dp[j]+1,dp[i]);
                }
            }
            //System.out.println(dp[i]);
            if(dp[i]>res) res=dp[i];
        }

        return res;
    }
}

674. 最长连续递增序列

在这里插入图片描述

思想

方法1:

应该叫做贪心?

维护一个变量 le记录连续的长度,res记录最大的连续的长度

 public int findLengthOfLCIS(int[] nums) {
         //方法1 暴力遍历
         int res=1;
         int le=1;
         for(int i=1;i<nums.length;i++){
             if(nums[i]>nums[i-1]){
                 le++;
             }else{
                 le=1;//重新开始计数
             }
             if(le>res){
                 res=le;
             }
         }
         return res;
     }

方法2 动态规划

1.dp数组的定义

dp[i]表示以i为结尾的数组的最长连续递增序列

2.递推公式

if(nums[i]>nums[i-1]) dp[i]=dp[i-1]+1

3.初始化

都初始化为1

4.遍历顺序

从1开始

5.数组打印

在这里插入图片描述

718. 最长重复子数组

在这里插入图片描述

思想

1.数组定义

dp[i][j] 表示以i-1结尾的数组nums1和以j-1的数组nums2的最长重复子数组的长度

2.递推公式

if(nums1[i-1]=nums[j-1]) dp[i][j]=dp[i-1][j-1]+1

3.初始化

如果nums1[0]=nums2[0] dp[1][1]=dp[0][0]+1 所以dp[0][0]=0;

4.遍历顺序

nums1数组从1开始 内层nums数组从1开始

5.数组打印

在这里插入图片描述

代码

class Solution {
    public int findLength(int[] nums1, int[] nums2) {
        //1.dp数组的定义
        //dp[i][j] 以i-1结尾的数组nums1和以j-1的数组nums2的最长重复子数组的长度

        //2.递推公式
        //当nums1[i-1]=nums2[j-1], dp[i][j]=dp[i-1][j-1]+1

        //3.初始化
        //dp[0][0] 无意义,
        // 如果nums1[0]=nums2[0] dp[1][1]=dp[0][0]+1 所以dp[0][0]=0;
        int[][] dp = new int[nums1.length+1][nums2.length+1];
        int res=0;
        for(int i=1;i<=nums1.length;i++){
            for(int j=1;j<=nums2.length;j++){
                if(nums1[i-1]==nums2[j-1]) dp[i][j]=dp[i-1][j-1]+1;
                if(dp[i][j]>res) res=dp[i][j];
            }

            
        }
        return res;
    }
}

参考:[代码随想录](

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文读懂于Zebec生态中的潜在收益方式

随着加密市场逐渐陷入低谷&#xff0c;曾经火热的NFT、GameFi等赛道都陷入了沉寂。投资者目前很难在加密市场中获得可观的收益&#xff0c;而在整体加密市场发展局势不明朗的情况下&#xff0c;行业目前缺乏发展动力。 目前&#xff0c;以流支付为主要定位的Zebec生态&#xff…

docker-compose入门以及部署SpringBoot+Vue+Redis+Mysql(前后端分离项目)以若依前后端分离版为例

场景 若依前后端分离版手把手教你本地搭建环境并运行项目&#xff1a; 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_前后端分离的项目怎么运行 上面在搭建起来前后端分离版的项目后。 如果想通过Dockerfile的方式部署项目可以参考如下。…

沃尔玛账号被冻结后如何进行申诉?

目前申请一个沃尔玛店铺并不容易&#xff0c;但仍有不少卖家因为操作不当导致账号被冻结封禁&#xff0c;这对于国内的卖家来说是巨大的损失。那么要如何避免账号被冻结&#xff0c;冻结后又该如何申诉呢&#xff1f;如何避免账号被冻结&#xff1f; 一、保证店铺表现符合平台标…

纵向分栏

【问题】 I would like to create a table that should be vertical orientation, that means each resultset row should filled from left to right.. Can i achieve this without using crosstab? 【回答】 横向分栏的功能可以先用集算器把数据准备好作为普通报表实现&…

【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)

需要源码请点赞关注收藏后评论区留言私信~~~ 多项式回归 非线性回归是用一条曲线或者曲面去逼近原始样本在空间中的分布&#xff0c;它“贴近”原始分布的能力一般较线性回归更强。 多项式是由称为不定元的变量和称为系数的常数通过有限次加减法、乘法以及自然数幂次的乘方运…

手把收教你Spring Cloud Alibaba基础教程:使用Sentinel实现接口限流

我们在上面学习了&#xff1a; 手把手教你Spring Cloud Alibaba教程:nacos安装 手把手教你Spring Cloud Alibaba教程:使用nacos实现服务注册与发现 手把手教你Spring Cloud Alibaba教程:使用Nacos作为配置中心 手把手教你Spring Cloud Alibaba教程:使用Nacos作为配置中心 …

最小二乘法拟合直线、曲线

参考文章&#xff1a;马同学马同学提供线性代数,微积分,概率论与数理统计,机器学习等知识讲解https://www.matongxue.com/madocs/818/ C最小二乘法拟合-&#xff08;线性拟合和多项式拟合&#xff09;_尘中远的博客-CSDN博客_namespace gsl 最小二乘法—多项式拟合非线性函数…

LeetCode_BFS_DFS_简单_1971.寻找图中是否存在路径

目录1.题目2.思路3.代码实现&#xff08;Java&#xff09;1.题目 有一个具有 n 个顶点的 双向 图&#xff0c;其中每个顶点标记从 0 到 n - 1&#xff08;包含 0 和 n - 1&#xff09;。图中的边用一个二维整数数组 edges 表示&#xff0c;其中 edges[i] [ui, vi] 表示顶点 u…

MR案例(2):学生排序(单字段排序、多字段排序)

文章目录一、任务目标1. 准备数据二、实行任务1. 创建Maven项目2. 添加相关依赖3. 创建日志属性文件4. 创建学生实体类5. 创建学生映射器类6. 创建学生归并器类7. 创建学生驱动类8. 启动学生驱动器类&#xff0c;查看结果一、任务目标 MR案例&#xff1a;学生排序&#xff08;…

【C++】继承与面向对象设计

目录 一、确保public继承塑模出is-a关系 二、避免隐藏继承而来的名称 三、区分接口继承和实现继承 四、考虑virtual函数以外的其他选择 五、不要重新定义继承而来的non-virtual函数 六、不要重新定义继承而来的缺省参数 七、尽量使用复合塑模出has-a 总结 一、确保publ…

【MySQL】Innodb存储引擎之物理存储结构(MySQL专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码&#xff0c;就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

云服务器安装jdk

第一步使用工具连接自己的服务器 连接成功后 在左侧选择需要上传的文件到opt目录 在云服务器的命令行操作界面输入指令 解压&#xff0c;输入jdk按table键自动补全 tar -zxvf 配置环境变量 vim /etc/profile 修改环境变量&#xff08;具体视安装 java 地址修改&#xff09; …

计算机毕设Python+Vue学生实验报告管理系统(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

jQuery 介绍

文章目录jQuery 介绍介绍下载安装jQuery 介绍 介绍 jQuery本身就是用JavaScript来写的&#xff0c;它只是把JavaScript中最常用的功能封装起来&#xff0c;以方便开发者快速开发。遥想当年&#xff0c;jQuery的创始人John Resig就是受够了JavaScript的各种缺点&#xff0c;所…

微服务框架 SpringCloud微服务架构 服务异步通讯 51 死信交换机 51.1 初识死信交换机

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 服务异步通讯 文章目录微服务框架服务异步通讯51 死信交换机51.1 初识死信交换机51.1.1 初识死信交换机51.1.2 总结51 死信交换机 51.1 初识…

java 多线程 上

目录 基本概念 线程的创建和使用 Thread类 API中创建线程的两种方式 Thread类的有关方法 线程的调度 线程的优先级 总结 基本概念 程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码&#xff0c;静态对象。 进程(process)是程…

TapTap 算法平台的 Serverless 探索之路

作者&#xff1a;陈欣昊 Serverless 在构建应用上为 TapTap 节省了大量的运维与开发人力&#xff0c;在基本没投入基建人力的情况下&#xff0c;直接把我们非常原始的基建&#xff0c;或者说是资源管理水平拉到了业界相对前沿的标准。最直观的数据是&#xff0c;仅投入了个位数…

代码随想录Day55|392.判断子序列、115.不同的子序列

文章目录392.判断子序列115.不同的子序列392.判断子序列 文章讲解&#xff1a;代码随想录 (programmercarl.com) 题目链接&#xff1a;392. 判断子序列 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。…

koa 使用

&#xff08;贴个官网&#xff0c;koa 内容真不多&#xff0c;非常的小巧轻量&#xff09; 1. koa 是什么 一个更小、更富有表现力、更健壮的 Web 框架。使用 koa 编写 web 应用&#xff0c;通过组合不同的 generator&#xff0c;可以免除重复繁琐的回调函数嵌套&#xff0c;…

关于新正方教务系统(湖北工程学院)的one day越权漏洞的说明

关于正方教务系统漏洞的说明 此漏洞基于湖北工程学院教务管理系统进行演示&#xff0c;漏洞覆盖新正方教务系统8.0以下版本&#xff0c;为本人一年前提交的漏洞&#xff0c;所以并非0day漏洞 此漏洞影响范围巨大&#xff0c;几乎涉及国内一半高校的教务系统&#xff0c;包含武…