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

day43 | 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

代码随想录算法训练营第 43 天| 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

Leetcode 300.最长递增子序列
题目链接:https://leetcode.cn/problems/longest-increasing-subsequence/description/
题目描述:

给你一个整数数组 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

提示:

  • 1 <= nums.length <= 2500
  • -104 <= nums[i] <= 104
思路:

动态规划

代码:
class Solution {public int lengthOfLIS(int[] nums) {if (nums.length <= 1) return nums.length;int[] dp = new int[nums.length];int res = 1;Arrays.fill(dp, 1);for (int i = 1; i < dp.length; i++) {for (int j = 0; j < i; j++) {if (nums[i] > nums[j]) {dp[i] = Math.max(dp[i], dp[j] + 1);}}res = Math.max(res, dp[i]);}return res;}
}
Leetcode 674. 最长连续递增序列
题目链接:https://leetcode.cn/problems/longest-continuous-increasing-subsequence/description/
题目描述:给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。

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

示例 1:

输入:nums = [1,3,5,4,7]
输出:3
解释:最长连续递增序列是 [1,3,5], 长度为3。
尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为 5 和 7 在原数组里被 4 隔开。 

示例 2:

输入:nums = [2,2,2,2,2]
输出:1
解释:最长连续递增序列是 [2], 长度为1。

提示:

  • 1 <= nums.length <= 104
  • -109 <= nums[i] <= 109
思路:

动态规划

代码:
  public static int findLengthOfLCIS(int[] nums) {int[] dp = new int[nums.length];for (int i = 0; i < dp.length; i++) {dp[i] = 1;}int res = 1;//可以注意到,這邊的 i 是從 0 開始,所以會出現和卡哥的C++ code有差異的地方,在一些地方會看到有 i + 1 的偏移。for (int i = 0; i < nums.length - 1; i++) {if (nums[i + 1] > nums[i]) {dp[i + 1] = dp[i] + 1;}res = res > dp[i + 1] ? res : dp[i + 1];}return res;}
Leetcode 718. 最长重复子数组
题目链接:https://leetcode.cn/problems/maximum-length-of-repeated-subarray/description/
题目描述:给两个整数数组 nums1nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度

示例 1:

输入:nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]
输出:3
解释:长度最长的公共子数组是 [3,2,1] 。

示例 2:

输入:nums1 = [0,0,0,0,0], nums2 = [0,0,0,0,0]
输出:5

提示:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 100
思路:

动态规划

代码:
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;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java 实现不改变图片尺寸,增大图片大小(kb)
  • 虚幻5|技能栏UI优化(3)——优化技能UI并实现显示背景UI,实现技能界面设计,实现技能栏的删除和添加
  • 合宙LuatOS产品规格书——Air700EAQ
  • Redis安装+常用命令合集大全+Redis Desktop Manager
  • jQuery基础——选择器的补充方法——过滤方法、查找方法
  • 【Kotlin设计模式】Kotlin实现装饰器模式
  • 【Linux】FRP:内网穿透
  • 使用 AI进行绘画初体验
  • 易语言教程——第四章—第一个程序—串口调试助手
  • 跨vue、react、angular框架渲染
  • 使用Vue创建cesium项目模版该如何选择?
  • 用Python在PDF文档中创建动作
  • 使用实例:xxl-job应用在spring cloud微服务下
  • uniapp组件用法
  • PTA - C语言接口题集1
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • chrome扩展demo1-小时钟
  • exif信息对照
  • gcc介绍及安装
  • HTTP中GET与POST的区别 99%的错误认识
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • PV统计优化设计
  • scala基础语法(二)
  • Spring Boot快速入门(一):Hello Spring Boot
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • Vue组件定义
  • 分布式事物理论与实践
  • 基于组件的设计工作流与界面抽象
  • 前端相关框架总和
  • 学习JavaScript数据结构与算法 — 树
  • Nginx实现动静分离
  • ​zookeeper集群配置与启动
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • (C#)一个最简单的链表类
  • (C语言)fgets与fputs函数详解
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (轉貼) UML中文FAQ (OO) (UML)
  • .cfg\.dat\.mak(持续补充)
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET6 命令行启动及发布单个Exe文件
  • .net和jar包windows服务部署
  • .net和php怎么连接,php和apache之间如何连接
  • .net后端程序发布到nignx上,通过nginx访问
  • .NET使用存储过程实现对数据库的增删改查
  • .net中应用SQL缓存(实例使用)
  • ??在JSP中,java和JavaScript如何交互?
  • @PreAuthorize注解
  • @TableLogic注解说明,以及对增删改查的影响