代码随想录算法训练营第五十二天|LeetCode300.最大递增子序列、LeetCode674.最长连续递增子序列、LeetCode718.最长重复子数组

LeetCode 300 最大递增子序列

题目链接:300. 最长递增子序列 - 力扣(LeetCode)

【解题思路】

  • 1.确定dp数组含义

    • dp[i]表示的是i之前以nums[i]为结尾的最长递增子序列的长度

  • 2.确定递推公式

    • 如果nums[i]>nums[j]

      • max(dp[j]+1,dp[i])

  • 3.初始化dp数组

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

  • 4.确定遍历顺序

    • dp[i]是由0到i-1各个位置的最长递增子序列推导出来的,所以i一定是从前向后遍历

    • j就是遍历0到i-1,所以从前到后或者从后向前都无所谓,只要把0到i-1的元素都遍历了就行了

  • 5.举例推导dp数组

【解题步骤】

  • 1.创建一个dp数组,长度等于nums的长度

  • 2.定义一个result变量,初始化为1

  • 3.将dp数组内的所有元素全部初始化为1

  • 4.从前向后,从1开始遍历数组长度

    • 遍历0到i-1

      • 递推公式

    • 将当前result与dp[i]比较,选大的那个

  • 5.返回result

【代码部分】

class Solution {public int lengthOfLIS(int[] nums) {int[] dp = new int[nums.length];int result = 1;Arrays.fill(dp,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[j]+1,dp[i]);}}result = Math.max(result,dp[i]);}return result;}
}

LeetCode 674 最长连续递增子序列

题目链接:674. 最长连续递增序列 - 力扣(LeetCode)

【解题思路】

  • 1.确定dp数组含义

    • dp[i]表示的是以下标i为结尾的连续递增的子序列长度为dp[i]

  • 2.确定递推公式

    • 如果nums[i]>nums[i-1]

      • dp[i] = dp[i-1]+1

  • 3.初始化dp数组

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

  • 4.确定遍历顺序

    • dp[i]是依赖dp[i-1]推出来的,所以一定是从前向后遍历

  • 5.举例推导dp数组

【解题步骤】

  • 1.创建一个dp数组,长度等于nums的长度

  • 2.定义一个result变量,初始化为1

  • 3.将dp数组内的所有元素全部初始化为1

  • 4.从前向后,从1开始遍历数组长度

    • 如果nums[i] > nums[i-1]

      • 递推公式

    • result和当前dp[i]比较,取最大的

  • 5.返回result

【代码部分】

class Solution {public int findLengthOfLCIS(int[] nums) {int[] dp = new int[nums.length];Arrays.fill(dp,1);int result = 1;for (int i = 1; i < nums.length; i++) {if(nums[i]>nums[i-1]){dp[i] = dp[i-1]+1;}result = Math.max(result,dp[i]);}return result;}
}

LeetCode 718 最长重复子数组

题目链接:718. 最长重复子数组 - 力扣(LeetCode)

【解题思路】

  • 1.确定dp数组含义

    • dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。

  • 2.确定递推公式

    • 当A[i - 1] 和B[j - 1]相等的时候

      • dp[i][j] = dp[i - 1][j - 1] + 1

  • 3.初始化dp数组

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

  • 4.确定遍历顺序

    • 先遍历A

      • 再遍历B

        • 递推公式

        • 其实先遍历A还是B都行

  • 5.举例推导dp数组

【解题步骤】

  • 1.创建一个dp数组,长度等于nums1的长度+1和nums2的长度+1

  • 2.定义一个result变量,初始化为1

  • 3.将dp数组内的所有元素全部初始化为1

  • 4.先遍历A

    • 再遍历B

      • 如果nums1[i-1] == nums2[j-1]

        • 递推公式

        • result和dp[i][j]比,选最大的

  • 5.返回result

【代码部分】

class Solution {public int findLength(int[] nums1, int[] nums2) {int result = 0;int[][] dp = new int[nums1.length + 1][nums2.length + 1];for(int i = 1 ; i < nums1.length + 1 ; i++){for(int j = 1; j < nums2.length + 1 ; j++){if(nums1[i-1] == nums2[j-1]) {dp[i][j] = dp[i - 1][j - 1] + 1;result = Math.max(result, dp[i][j]);}}}return result;}
}

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

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

相关文章

Scala、Spark SQL 常用方法

目录 数组常用方法 列表操作常用方法 Scala中常用的查看列表元素的方法有head、init、last、tail和take()。 合并两个列表还可以使用concat()方法。 集合操作常用方法 map()方法 foreach()方法 filter()方法 flatten()方法 groupBy()方法 ​编辑 从内存中读取数据创建…

二叉树之左叶子的和

题目&#xff1a; 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中&#xff0c;有两个左叶子&#xff0c;分别是 9 和 15&#xff0c;所以返回 24示例 2: 输入: root […

时间瑾眼中的IT行业现状与未来趋势

文章目录 技术革新与行业应用IT行业的人才培养与教育人工智能与机器学习的演进数据安全与隐私保护可持续发展与绿色技术社会责任与道德规范 随着技术的不断进步&#xff0c;IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链…

朋友在阿里测试岗当HR,给我整理的面试题文档

以下是软件测试相关的面试题及答案&#xff0c;欢迎大家参考! 1、你的测试职业发展是什么? 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&…

动手学深度学习18 预测房价竞赛总结

动手学深度学习18 预测房价竞赛总结 李沐老师代码AutoGluonh2o集成学习automlQA 视频&#xff1a; https://www.bilibili.com/video/BV15Q4y1o7vc/?vd_sourceeb04c9a33e87ceba9c9a2e5f09752ef8 代码&#xff1a; https://www.bilibili.com/video/BV1rh411m7Hb/?vd_sourceeb04…

笔灵ai答辩ppt、轻竹PPT、AIPPT、iSlide:这四款AI PPT工具有何独特优势?

提起PPT&#xff0c;大家的第一反应就是痛苦。经常接触PPT的学生党和打工人&#xff0c;光看到这3个字母&#xff0c;就已经开始头痛了&#xff1a; 1、PPT内容框架与文案挑战重重&#xff0c;任务艰巨&#xff0c;耗费大量精力。 2、PPT的排版技能要求高&#xff0c;并非易事…

springboot整合s3,用ImageIO进行图片格式转换

上次用laravel进行了一些s3得整合&#xff0c;可以看出来其实蛮简单得。 先导包 <dependency><groupId>software.amazon.awssdk</groupId><artifactId>s3</artifactId></dependency> 然后在配置类中写bean private static final String …

【软考】设计模式之观察者模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 优缺点5.1 优点5.2 缺点 6. java示例 1. 说明 1.定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。2.也称为模型-视图模式、源-收听者模式或从属者…

关于Double接收到字符串 插入失败 Overflow Exception trying to bind NaN

前端计算 传值给后端NaN 后端接收到之后直接执行插入操作 报错 Error updating database. Cause: java.sql.SQLException: Internal Error: Overflow Exception trying to bind NaN 如果前端传值 NaN 或者 Infinity java是不报错的 只有插入报错 double result1 10.0 / 0; /…

神经网络复习--数学相关基础知识

文章目录 矩阵范数卷积激活函数信息熵 矩阵 标量&#xff1a;一个标量就是一个单独的数向量&#xff1a;一个向量是一列数。这些数是有序排列的。通过次序中的索引&#xff0c;我们可以确定每个单独的数矩阵&#xff1a;矩阵是一个二维数组&#xff0c;其中的每个元素被两个索…

华为机试打卡 HJ5 进制转换

要机试了&#xff0c;华孝子求捞&#xff0c;功德 描述 写出一个程序&#xff0c;接受一个十六进制的数&#xff0c;输出该数值的十进制表示。 数据范围&#xff1a;保证结果在 1≤&#x1d45b;≤2^31−1 输入描述&#xff1a; 输入一个十六进制的数值字符串。 输出描述…

【JAVA】递归

接着上一讲继续&#xff0c;内容不多&#xff0c;讲解一下递归相关内容。 1. 生活中的故事 从前有坐山&#xff0c;山上有座庙&#xff0c;庙里有个老和尚给小和尚将故事&#xff0c;讲的就是&#xff1a; "从前有座山&#xff0c;山上有座庙&#xff0c;庙里有个老和尚…

uos server 无法通过ssh工具连接

问题现象 uos server 服务器操作系统 在虚拟机中安装好之后&#xff0c;防火墙已经关闭&#xff0c;ssh服务已经启动&#xff0c;但通过finalshell等ssh工具连接报错 &#xff1a;java.net.ConnectException: Connection timed out: connect 经过确认 防火墙已关&#xff0c;s…

48.乐理基础-音符的组合方式-休止符

休止符 音乐中总有一些停顿的地方&#xff0c;一次停顿多久是创作人固定好的&#xff0c;休止符就是用来表示每一次停顿多久 需要停顿的位置就用 0 来表示&#xff0c;数字 0 就是简谱中的休止符 音符有全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符等&…

你写代码,会关注时间复杂度吗?

虽然面试的时候总是被问到这个问题&#xff0c;但你写代码的时候&#xff0c;真的会想到这个问题吗&#xff1f;时间复杂度&#xff0c;说的当然不是你写的代码执行用了多长时间&#xff0c;而是代码执行语句的次数。 目录 每行代码都需要注意 计算方法 1 例如常量增长 2 …

五子棋对战(网页版)

目录 一、项目背景 用户模块 匹配模块 对战模块 二、核心技术 三、相关知识 WebSocket 原理 报文格式 代码 服务器代码 客户端代码 四、项目创建 4.1、实现用户模块 编写数据库代码 数据库设计 配置MyBatis 创建实体类 创建UserMapper 创建UserMapper接口 实现UserMapper.xml 前…

train_gpt2.c

llm.c/train_gpt2.c at master karpathy/llm.c (github.com) 源码 /* This file trains the GPT-2 model. This version is the clean, minimal, reference. As such: - it runs on CPU. - it does not make the code too complex; it is readable. - it does not use any p…

等保测评技术方案(五)

&#xff08;八&#xff09;漏洞扫描方案 1.参与人员 乙方工程师&#xff1a;谭 然、张 剑等。 范围经过双方确认&#xff0c;此次评估的对象包括&#xff1a; 2.网络设备 IP 地址 设备型号 备注 / / / / / / 以现场测评实际数据为准 3.应用系统 地址 …

SpringBoot集成Curator实现Watch事件监听

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 Zookeeper是一个Ap…

缓存不经常更新的动态信息:策略与 Nginx 配置指南

在处理不经常更新的动态信息时&#xff0c;合理配置缓存能够显著提高网站的性能和用户体验。通过缓存这类内容&#xff0c;我们可以减少对后端服务的请求压力&#xff0c;加快内容的加载速度。下面我们会探讨如何在 Nginx 中配置缓存以最大化这种类型的动态内容的效益。 理解动…