【动态规划part13】| 300.最长递增子序列、674.最长连续递增序列、718.最长重复数组

news2024/11/15 21:46:42

目录

🎈LeetCode 300.最长递增子序列 

🎈LeetCode 674. 最长连续递增序列 

🎈LeetCode 718. 最长重复子数组  


🎈LeetCode 300.最长递增子序列 

链接:300.最长递增子序列

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。

子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

 

public int lengthOfLIS(int[] nums) {
        // dp[i]表示0~i下标的最长递增子序列的长度
        int[] dp=new int[nums.length];
        // 
        for(int i=0;i<dp.length;i++){
            dp[i]=1;
        }
        int result=1;
        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[i],dp[j]+1);
                }
            }
            result=result>dp[i]?result:dp[i];
        }
        return result;
    }

🎈LeetCode 674. 最长连续递增序列 

链接:674.最长连续递增序列

给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。

连续递增的子序列 可以由两个下标 l 和 rl < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。

 迭代法:比较直观

public int findLengthOfLCIS(int[] nums) {
        int result=0;
        int temp=1;
        for(int i=1;i<nums.length;i++){
            if(nums[i]>nums[i-1]){
                temp++;
            }else{
                result=result>temp?result:temp;
                temp=1;
            }
        }
        result=result>temp?result:temp;
        return result;
    }

动态规划法

public int findLengthOfLCIS(int[] nums) {
        int[] dp=new int[nums.length];
        for(int i=0;i<nums.length;i++){
            dp[i]=1;
        }
        int result=1;
        for(int i=1;i<nums.length;i++){
            if(nums[i]>nums[i-1]){
                dp[i]=dp[i-1]+1;
            }
            if(dp[i]>result){
                result=dp[i];
            }
        }
        return result;
    }

🎈LeetCode 718. 最长重复子数组  

链接:718.最长重复子数组

给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 

 

public int findLength(int[] nums1, int[] nums2) {
        // dp[i][j]表示0~i下标nums1和0~j下标的nums2的最长重复子数组长度
        int[][] dp=new int[nums1.length+1][nums2.length+1];
        int result=0;
        dp[0][0]=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]>result){
                    result=dp[i][j];
                }
            }
            
        }
        return result;

    }

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

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

相关文章

camund——2、cancelActivityInstance()与多实例下getActiveActivityIds()获取不到当前任务的节点。

在多实例&#xff08;会签或者并行网关&#xff09;时如果使用以下代码来进行驳回时&#xff0c;使用 **List activeActivityIds runtimeService.getActiveActivityIds(instanceId);**来获取当前活动的节点会出现获取不到情况。 runtimeService.createProcessInstanceModific…

基于Linux操作系统中的MySQL用户权限管理(三十二)

用户权限管理 目录 一、概述 二、用户权限类型 1、ALL PRIVILEGES 2、CREATE 3、DROP 4、SELECT 5、INSERT 6、UPDATE 7、DELETE 8、INDEX 9、ALTER 10、CREATE VIEW和CREATE ROUTINE 11、SHUTDOWN 12、GRANT OPTION 三、用户赋权 四、权限删除 五、用户删除 …

RTThread实际开发问题统计

文章目录 开启DMA rx中断&#xff0c;数据帧总是接收不全就产生中断&#xff1f;PB3/PB4等和JTAG复用的管脚不能使用&#xff1f;uart使用DMA传输&#xff0c;调用close再open之后就接收不到数据了&#xff1f; 开启DMA rx中断&#xff0c;数据帧总是接收不全就产生中断&#x…

C语言指针应该这么学?

数组名的意义&#xff1a; 1. sizeof(数组名)&#xff0c;这里的数组名表示整个数组&#xff0c;计算的是整个数组的大小。 2. &数组名&#xff0c;这里的数组名表示整个数组&#xff0c;取出的是整个数组的地址。 3. 除此之外所有的数组名都表示首元素的地址。 根据以上数…

[CrackMe]Cruehead.1.exe的逆向及注册机编写

1. 逆向分析过程 作者弄了很多个对话框来迷惑破解者, 然后真正有用的对话框只有这个 这个窗口过程函数处理的是父窗口 其他的不关心, 只关心WM_COMMAND消息 里面有3个分支, 其中最重要的是按下register按钮的那个 整个逻辑非常清晰, 其算法是把name的每个字符转成大写字母…

测试测试用例设计常见面试题

测试|测试用例设计常见面试题 文章目录 测试|测试用例设计常见面试题1.怎么模拟弱网&#xff08;测试技巧&#xff09;2.怎么测试接口&#xff08;测试技巧&#xff09;3.怎么对冒泡排序测试&#xff08;代码类&#xff09;4.怎么对linux的zip命令进行测试&#xff08;软件类&a…

Spring Boot项目的创建

hi 大家好,又见面了,今天继续讲解Spring Boot 文章目录 &#x1f436;1.什么是Spring Boot?&#x1f436;2.Spring Boot的优势&#x1f436;3.Spring Boot项目创建&#x1f33c;3.1使用ieda创建&#x1f95d;3.1.1下载插件Spring Boot Helper&#x1f95d;3.1.2创建项目 &…

基于ThreadPoolExecutor实现动态线程池

项目上&#xff0c;我们是根据业务的使用频率&#xff0c;基于ThreadPoolExecutor自定义一个线程池&#xff0c;线程池的核心线程数、最大线程数、阻塞队列的容量都是估计的设置的&#xff0c;但是不知道线程资源的真正使用情况。 1.ThreadPoolExecutor配置参数动态修改 先来…

Linux Day04

目录 一、文件压缩与解压命令 1.1 tar cvf 文件名 ---打包命令生成.tar 1.2 tar xvf 文件名 ----解开包 生成文件 1.3 gzip .tar 压缩 生成.tar.gz压缩包 1.4 gzip -d .tar.gz 解压成包 1.5 直接把压缩包解压成文件 tar zxf .tar.gz 二、Linux 系统上 C 程序的…

Python实现自动登录和下单脚本,代码嘚魅力~

目录标题 前言环境使用:代码实现思路配置浏览器驱动代码实现尾语 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 学python对selenium应该不陌生吧 Selenium 是最广泛使用的开源 Web UI&#xff08;用户界面&#xff09;自动化测试套件之一。 Selenium 支持的语言包括C#…

Winget简单介绍

为什么明明Windows的UI更为便捷&#xff0c;但是还是那么多人用的linux&#xff0c;或者mac 主要还是linux和mac的命令行更好用。 虽然windows中也出现了choco这种东西&#xff0c;但是非官方的总觉得不是很令人信服。 这边挂一下官方文档&#xff0c;然后在开始自己的简单实…

深入理解Vue响应式系统:数据绑定探索

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

某某大学某学院后台Phar反序列化GetShell

觉得这个洞还算有点意思&#xff0c;可以记录一下 首先在另一个二级学院进行目录扫描时发现源码www.rar&#xff0c;并且通过一些页面测试推测这两个二级学院应该是使用了同一套CMS 分析源码&#xff0c;发现使用的是ThinkPHP 5.1.34 LTS框架 通过APP、Public得到后台访问路径…

开放自动化软件的硬件平台

自动化行业的产品主要以嵌入式系统为主&#xff0c;历来对产品硬件的可靠性和性能都提出很高的要求。最典型的产品要数PLC。PLC 要求满足体积小&#xff0c;实时性&#xff0c;可靠性&#xff0c;可扩展性强&#xff0c;环境要求高等特点。它们通常采用工业级高性能嵌入式SoC 实…

无涯教程-jQuery - Selectable选择函数

选择能力功能可与JqueryUI中的交互一起使用。此功能可在任何DOM元素上启用选择能力功能。用光标绘制一个框以选择项目。按住Ctrl键可进行多个不相邻的选择。 Select able - 语法 $( "#selectable" ).selectable(); Select able - 示例 以下是一个简单的示例&…

反弹shell确认是否是docker容器

反弹shell确认是否是docker容器 方法一 如果根目录中存在.dockerwenv文件&#xff0c;证明是doker容器 ls /.dockerenv方法二 出现以下类似内容&#xff0c;证明是在doker容器内 cat /proc/1/cgroup

回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现GRNN广义回归神经网络多输入单输出回归…

【设计模式——学习笔记】23种设计模式——享元模式Flyweight(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入介绍基本介绍原理类图外部状态和内部状态 登场角色 案例实现案例1类图代码实现 案例2类图代码实现 享元模式在JDK源码中的使用总结 案例引入 你的公司主要做一些小型的外包项目&#xff0c;之前给客户A做一个产品展示网站&#xff0c;客户A的朋友感觉效果不错…

uniapp小程序自定义loding,通过状态管理配置全局使用

一、在项目中创建loding组件 在uniapp的components文件夹下创建loding组件&#xff0c;如图&#xff1a; 示例代码&#xff1a; <template><view class"loginLoading"><image src"../../static/loading.gif" class"loading-img&q…

SpringBoot统一异常处理和统一返回格式

上篇博客我们讲解了使用AOP来进行统一的用户登录判断&#xff0c;其实像这种功能统一且使用较多的地方&#xff0c;都可以用AOP来处理&#xff0c;除了统⼀的⽤户登录判断之外&#xff0c;AOP 还可以实现&#xff1a; 统⼀⽇志记录统⼀⽅法执⾏时间统计&#xff08;在性能优化…