代码随想录第51天|● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

文章目录

  • ● 300.最长递增子序列
    • 思路
    • 代码:
  • ● 674. 最长连续递增序列
    • 思路:
    • 代码:
  • ● 718. 最长重复子数组
    • 思路:
    • 代码一:dp二维数组
    • 代码二:滚动数组

● 300.最长递增子序列

在这里插入图片描述

思路

dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码:

注意:需要判断[0]输出是1的情况。

class Solution {public int lengthOfLIS(int[] nums) {// if(nums.length==1)return 1;int[] dp = new int[nums.length];int res = 1;Arrays.fill(dp, 1);for(int i=1;i<nums.length;i++){for(int j=0;j<i;j++){if(nums[j]<nums[i]){dp[i]=Math.max(dp[i],dp[j]+1);}}res = Math.max(res, dp[i]);}return res;}
}

● 674. 最长连续递增序列

在这里插入图片描述

思路:

在这里插入图片描述

代码:

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

● 718. 最长重复子数组

在这里插入图片描述

思路:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码一:dp二维数组

class Solution {public int findLength(int[] nums1, int[] nums2) {int res = 0;int[][] dp = new int[nums1.length + 1][nums2.length + 1];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;}res = Math.max(res,dp[i][j]);}}return res;}
}

代码二:滚动数组

在这里插入图片描述
我们可以看出dp[i][j]都是由dp[i - 1][j - 1]推出。那么压缩为一维数组,也就是dp[j]都是由dp[j - 1]推出。

也就是相当于可以把上一层dp[i - 1][j]拷贝到下一层dp[i][j]来继续用。

此时遍历B数组的时候,就要从后向前遍历,这样避免重复覆盖。

// 版本二

class Solution {public int findLength(int[] nums1, int[] nums2) {int res = 0;int[]dp = new int[nums2.length + 1];for(int i=1;i<=nums1.length;i++){//循环是为了匹配for(int j=nums2.length;j>0;j--){if(nums1[i-1]==nums2[j-1]){dp[j]=dp[j-1]+1;}else{dp[j]=0;}res = Math.max(res,dp[j]);}}return res;}
}

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

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

相关文章

Github 2024-03-07Go开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10TypeScript项目1Harbor - 开源的云原生注册表项目 创建周期:2908 天开发语言:Go协议类型:Apache License 2.0Star数量:21549 个For…

【SQL】176. 第二高的薪水 (IFNULL() + LIMIT OFFSET)

前述 知识点学习&#xff1a;推荐阅读 sql语句中limit、offset的用法 题目描述 题目链接&#xff1a;176. 第二高的薪水 写法一 去掉最大的&#xff0c;再取最大的 ⇒ 第二大的。 select max(B.salary) as SecondHighestSalary from Employee B where B.salary ! (select…

pytorch什么是梯度

目录 1.导数、偏微分、梯度1.1 导数1.2 偏微分1.3 梯度 2. 通过梯度求极小值3. learning rate3. 局部最小值4. Saddle point鞍点 1.导数、偏微分、梯度 1.1 导数 对于yx 2 2 2 的导数&#xff0c;描述了y随x值变化的一个变化趋势&#xff0c;导数是个标量反应的是变化的程度&…

MySQL NDB Cluster 基于Nginx stream的负载均衡配置

安装nginx https://nginx.org/en/download.html 首先从nginx官网中下载nginx 1.12.2.tar.gz 解压nginx.1.22.2.tar.gz之后&#xff0c;执行以下命令基于stream编译Nginx&#xff0c;使得Nginx能够提供tcp代理的功能 ./configure --with-stream make make install配置Nginx …

Linux——线程(2)

在上一篇博客中我介绍了Linux中的线程是什么样的&#xff0c;就如同进程可以通过 fork创建&#xff0c;可以被终止&#xff0c;可以退出一样&#xff0c;线程也可以被我们用户控制&#xff0c;这 篇博客我会介绍线程的控制&#xff0c;并且基于线程的控制所产生的一些问题进行 …

Unity3d调用C++ dll中的函数

一、生成dll 1.新建dll工程 2. 不用管dllmain.cpp&#xff0c;添加自定义Helper.h和Helper.cpp 3.添加要在外部调用的方法 //头文件 #define DLLEXPORT extern "C" __declspec(dllexport) DLLEXPORT int _stdcall Addition(int x, int y); DLLEXPORT int _stdcal…

泰华信号隔离器一进二出分配转换配电变送器有源4-20mA 0-10V输出

品牌&#xff1a;泰工华控 信号隔离器&#xff0c;高精度&#xff0c;高线性度&#xff0c;低温漂。好品质源于用心&#xff0c;我们专心打造好的隔离器。 您需要一款这样的隔离器&#xff0c;转换精度高&#xff0c;响应速度快&#xff0c;耐压隔离高&#xff0c;三端隔离技…

腾讯QQ推出AI聊天搭子;零一万物01AI宣布开源Yi-9B模型

&#x1f989; AI新闻 &#x1f680; 腾讯QQ推出AI聊天搭子&#xff0c;进军AI对话领域 摘要&#xff1a;腾讯QQ合作筑梦岛和混元助手&#xff0c;推出了AI对话功能“AI聊天搭子”&#xff0c;提供多种虚拟角色与用户实时互动&#xff0c;目前已开启测试。此外&#xff0c;抖…

Java | 在消息对话框中显示文本

首先需要导入JOptionPane类&#xff0c;JOptionPane类属于Swing组件中的一种&#xff0c;其导入方式如下&#xff1a; import javax.swing.JOptionPane;可以使用JOptionPane的showMessageDialog方法显示消息文本。 参数格式&#xff1a; JOptionPane.showMessageDialog(paren…

面试题个人总结(面经)

自我介绍 你好&#xff0c;我叫XXX&#xff0c;是今天面试初级蓝队的人员&#xff0c;我毕业于XXXX&#xff0c;专业为网络空间安全,我曾经在XXXXX实习过&#xff0c;有过大概一年左右的工作经验&#xff0c;还有过一定的护网经验&#xff0c;去年在XXX厂商护过网&#xff0c;…

JUC总结

文章目录 java中线程的6种状态 静态变量、实例变量、局部变量的线程安全问题&#xff1a; 为什么会出现线程安全问题&#xff1a;在多个线程对共享资源读写操作&#xff0c;就会出现问题 synchronized 锁升级&#xff1a; sleep 和 wait 的区别 park和unpark 是unsafe中…

JAVA实战开源项目:超市商品管理系统(Vue+SpringBoot)

目录 一、摘要1.1 简介1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 超市区域模块2.3 超市货架模块2.4 商品类型模块2.5 商品档案模块 三、系统设计3.1 用例图3.2 时序图3.3 类图3.4 E-R图 四、系统实现4.1 登录4.2 注册4.3 主页4.4 超市区域管理4.5 超市货架管理4.6 商品类型…