【6.09 代随_52day】 最长递增子序列、最长连续递增序列、最长重复子数组

news2024/11/29 22:36:16

最长递增子序列、最长连续递增序列、最长重复子数组

  • 最长递增子序列
    • 1.方法
      • 图解步骤
      • 递归代码
  • 最长连续递增序列
    • 1.动态规划的方法
      • 图解步骤
      • 代码
  • 最长重复子数组
      • 图解步骤
      • 代码


最长递增子序列

力扣连接:300. 最长递增子序列(中等)

1.方法

  1. dp[i]的定义
    本题中,正确定义dp数组的含义十分重要。
    dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度

图解步骤

在这里插入图片描述

关键点

  • dp[i]的初始化,每一个i,对应的dp[i](即最长递增子序列)起始大小至少都是1.

递归代码

class Solution {
    public int lengthOfLIS(int[] nums) {
        int size = nums.length;
        int[] dp = new int[size];//以nums[i]为结尾的最长递增子序列的长度
        Arrays.fill(dp, 1);
        for(int i=1; i<size; i++){
            for(int j=i-1; j>=0; j--){
                if(nums[i]>nums[j]){
                    dp[i] = Math.max(dp[i], dp[j] + 1);
                }
            }
        }
        
        int max = Integer.MIN_VALUE;
        for(int i=0;i<size;i++){
            max = Math.max(max, dp[i]);
        }
        return max;
        
    }
}


最长连续递增序列

力扣连接:674. 最长连续递增序列(简单)

1.动态规划的方法

  1. 确定dp数组(dp table)以及下标的含义
    dp[i]:以下标i为结尾的连续递增的子序列长度为dp[i]。

图解步骤

在这里插入图片描述

关键点

  • 递推公式:dp[i] = dp[i - 1] + 1;

代码

class Solution {
    public int findLengthOfLCIS(int[] nums) {
        int size = nums.length;
        int[] dp = new int[size];
        Arrays.fill(dp, 1);

        for(int i=1;i<size;i++){
            if(nums[i]>nums[i-1]){
                dp[i] = dp[i-1]+1;
            }
        }

        int max = Integer.MIN_VALUE;
        for(int i=0; i<size; i++){
            max = Math.max(max, dp[i]);
        }
        
        return max;
    }
}


最长重复子数组

力扣连接:718. 最长重复子数组(中等)

  1. 确定dp数组(dp table)以及下标的含义
    dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。 (特别注意: “以下标i - 1为结尾的A” 标明一定是 以A[i-1]为结尾的字符串方便下面代码编程

图解步骤

在这里插入图片描述

关键点

  • 初始化 默认dp[i][0]=0; dp[0][j]=0;

代码

class Solution {
    public int findLength(int[] nums1, int[] nums2) {
        int size1 = nums1.length;
        int size2 = nums2.length;
        int[][] dp = new int[size1+1][size2+1]; //定义dp数组中以i-1为结尾和以j-1为结尾的最大子数组长度
		//初始化 默认dp[i][0]=0; dp[0][j]=0;
		//因为i-1和j-1为结尾第一行第一列没有意义
        int max = 0;
        for(int i=1;i<=size1;i++){
            for(int j=1;j<=size2;j++){
                if(nums1[i-1]==nums2[j-1]){
                    dp[i][j] = dp[i-1][j-1] + 1;

                    if(dp[i][j]>max){
                        max = dp[i][j];
                    }
                }
            }
        }

        return max; 
    }
}


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

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

相关文章

开源 Golang 微服务入门三:ORM 框架 GORM

前言 前两篇笔记分别介绍了 Golang 微服务 HTTP 框架 Hertz 和 Golang 微服务 RPC 框架 Kitex&#xff0c;本文将要介绍面向ORM(持久层)框架 GORM。 官方文档 GORM 是面向 Golang 语言的一种 ORM(持久层)框架&#xff0c;支持多种数据库的接入&#xff0c;例如 MySQL&#x…

【TCP/IP】多进程服务器的实现(进阶) - 僵尸进程及wait、waitpid函数

目录 僵尸(Zombie)进程 僵尸进程的产生机制 僵尸进程的危害 僵尸进程的销毁 wait函数 waitpid函数 进程管理在网络编程中十分重要&#xff0c;如果未处理好&#xff0c;将会导致出现“僵尸进程”&#xff0c;进而影响服务器端对进程的管控。 僵尸(Zombie)进程 第一次听到…

继万物分割SAM之后,万物识别模型RAM来了!

Recognize Anything: A Strong Image Tagging Model 提出“识别万物模型”&#xff08;Recognize Anything Model&#xff0c;RAM&#xff09;&#xff0c;用于图像打标签。RAM 可以高精度地识别任何常见类别。RAM 引入了图像打标签的一个新范式&#xff0c;利用大规模的图像-文…

如何在RPC和RESTful之间做选择?

不同软件系统之间的通信可以通过RPC&#xff08;远程过程调用&#xff09;或RESTful&#xff08;表现层状态转移&#xff09;协议来建立&#xff0c;这些协议允许多个系统在分布式计算中协同工作。 这两种协议在设计哲学上有所区别。RPC使得可以像调用本地过程一样调用服务器上…

AI时代已经到来,不想被抛弃,特别是传统产业的你,怎么办?

由于ChatGTP的惊人表现&#xff0c;本来已经趋于平淡的AI&#xff0c;又火爆起来。毫无疑问&#xff0c;人类已经进入了AI时代&#xff0c;AI将渗入到各行各业&#xff0c;渗入到生活与工作的每个方面。这是一场新的工业革命&#xff0c;很多工作都将消失&#xff0c;但也会产生…

【Python】Python进阶系列教程-- Python3 MySQL - mysql-connector 驱动(三)

文章目录 前言创建数据库连接创建数据库创建数据表主键设置 插入数据批量插入查询数据where 条件语句排序Limit删除记录更新表数据删除表 前言 往期回顾&#xff1a; Python进阶系列教程-- Python3 正则表达式&#xff08;一&#xff09;Python进阶系列教程-- Python3 CGI编程…

记录--7 个沙雕又带有陷阱的 JS 面试题

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 为了保证的可读性&#xff0c;本文采用意译而非直译。 在 JS 面试中&#xff0c;经常会看到一些简单而又沙雕的题目&#xff0c;这些题目包含一些陷阱&#xff0c;但这些在我们规范的编码下或者业务中…

基于BP神经网络的轨迹跟踪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

NLP(1):Introduction

文章目录 Why process textChallengesText processingword, sentence, document, corpus, tokenProcessing stepsSentence segmentationWord TokenizationMaxMatch AlgorithmSubword Tokenization &#xff08;BPE&#xff09;BPE 算法 Word NormalizationStop Words Remove Wh…

数据分析第17课seaborn绘图

关系型绘图 seaborn.relplot() 这个函数功能非常强大,可以用来表示多个变量之间的关联关系。默认情况下是绘制散点图(散点图是看到变量与变量之间相关性最优的一个图形),也可以绘制线性图,具体绘制什么图形是通过kind参数来决定的。实际上以下两个函数就是relplot的特例…

Vue2 事件的默认和传播行为、事件修饰符

前言 在学习vue2时&#xff0c;学到了 事件修饰符&#xff0c;但是对事件的默认行为和传播行为不太理解&#xff0c;所以也就是不知道为啥要使用事件修饰符&#xff0c;所以找了一些资料&#xff0c;在此记录一下。 Vue2官方文档 事件处理 — Vue.js (vuejs.org)https://v2.…

【 Python 全栈开发 - WEB开发篇 - 29 】MySQL初步

文章目录 一、MySQL介绍二、SQL语言三、MySQL安装与配置第一步&#xff1a;下载压缩文件第二步&#xff1a;解压第三步&#xff1a;配置第四步&#xff1a;登录 一、MySQL介绍 MySQL 是一个开源的关系型数据库管理系统&#xff0c;它使用 Structured Query Language&#xff0…

JDBC的增删改查

文章目录 前言创建数据库基础版JDBC实例添加JDBC实例删除JDBC实例修改JDBC实例查询 高级版JDBC实例添加JDBC实例删除JDBC实例修改JDBC实例查询 前言 JDBC编程步骤&#xff1a; 加载数据库驱动程序创建数据库连接对象创建Statement语句对象&#xff08;createStatement、prepa…

谈谈聚簇索引与非聚簇索引

技术主题 聚簇索引是一种数据的存储方式,它的数据行只存放在索引(B+树)的叶子上,内部节点不存放数据。 聚簇索引 聚簇索引默认是主键,如果没有定义主键,innodb会选择一个唯一的非空索引代替。如果没有这种索引,innodb会隐式定义一个主键作为聚簇索引。 非聚簇索引 非…

百度出品,Nature重磅 -- 优化的mRNA设计算法可改善mRNA的稳定性和免疫原性

摘要 尽管mRNA疫苗已用于COVID-19的预防&#xff0c;但仍然面临不稳定和易降解的风险&#xff0c;这是mRNA疫苗存储、配送、效价等面临的重要障碍。先前的研究已表明&#xff0c;增加二级结构可延长mRNA的半衰期&#xff0c;再加上选择优化的密码子&#xff0c;可改善蛋白表达。…

Django实现接口自动化平台(五)httprunner(2.x)基本使用【持续更新中】

上一章&#xff1a; Django实现接口自动化平台&#xff08;四&#xff09;解决跨域问题【持续更新中】_做测试的喵酱的博客-CSDN博客 下一章&#xff1a; 一、参考地址&#xff1a; 使用说明_httprunner2.0 概述及使用说明 二、介绍 HttpRunner是一款面向 HTTP(S) 协议的通…

一文带你了解MySQL之锁

目录 一、解决并发事务带来问题的两种基本方式1.1 一致性读&#xff08;Consistent Reads&#xff09;1.2 锁定读&#xff08;Locking Reads&#xff09;1.2.1 共享锁和独占锁1.2.2 锁定读的语句 1.3 写操作 二、多粒度锁三、MySQL中的行锁和表锁3.1 其他存储引擎中的锁3.2 Inn…

高通KMD框架详解

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、概览二、核心模块解析三、模块初始化四、处理UMD CSL请求 一、概览 利用了V4L2可扩展这一特性&#xff0c;高通在相机驱动部分实现了自有的一套KMD…

未来3年,请善待你的工作

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID&#xff1a;jishulingdaoli) “如果不是现在环境差&#xff0c;下家不好找&#xff0c;我早TM跟那个傻X老板翻桌子走人了&#xff0c;这破公司我真是一天都不想待…”这是一位粉丝朋友给K哥私信中的一段话。类似同款的话&#xff…

百度推出基于大模型的代码编写助手“Comate”真的好用吗?

‍ 点击蓝字 关注我们 关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;计算机视觉研究院 学习群&#xff5c;扫码在主页获取加入方式 计算机视觉研究院专栏 Column of Computer Vision Institute 6月6日&#xff0c;在文心大模型技术交流会&#xff08;成都&…