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

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

300.最长递增子序列

在这里插入图片描述

看完题后的思路

dp[i] [0,i]子数组中,以nums[i]结尾的子序列的长度
dp[i]=dp[j]+1 j从i-1向0遍历,在所有nums[j]<nums[i]中dp[j]最大
初始化 dp[0]=1

代码

class Solution {public int lengthOfLIS(int[] nums) {if (nums.length==0){return 0;}int[] dp=new int[nums.length];dp[0]=1;for (int i = 1; i <nums.length ; i++) {int j = i-1;int max=-1;for (; j >=0 ; j--) {if (nums[j]<nums[i]&&dp[j]>max){dp[i]=dp[j]+1;max=dp[j];}} if (max==-1){dp[i]=1;}}int max=0;for (int i : dp) {max=Math.max(i,max);}return max;}
}

看完题解的改进

dp【i】=max(dp【i】,dp【j】+1) nums【j】<nums【i】

674. 最长连续递增序列

看完题后的思路

dp[i]=dp[i-1]+1 nums[i]>nums[i-1]
dp[i]=1 else

代码

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

718. 最长重复子数组

在这里插入图片描述

看完题后的思路

dp[i][j]: 包含以A[i]结尾与以B[j]结尾的公共序列的长度
dp[i][j]=dp[i-1][j-1]+1 A[i]=B[j] else =0
初始化
dp[0][j]= 0/1
dp[i][0]=0/1

代码

 public int findLength(int[] nums1, int[] nums2) {int m=nums1.length,n=nums2.length;int max=0;int[][] dp=new int[m][n];for (int i = 0; i <n ; i++) {if (nums1[0]==nums2[i]){dp[0][i]=1;}else {dp[0][i]=0;}max=Math.max(dp[0][i],max);}for (int i = 0; i <m ; i++) {if (nums2[0]==nums1[i]){dp[i][0]=1;}else {dp[i][0]=0;}max=Math.max(dp[i][0],max);}// 核心for (int i = 1; i <m ; i++) {for (int j = 1; j <n ; j++) {if (nums1[i]==nums2[j]){dp[i][j]=dp[i-1][j-1]+1;}else {dp[i][j]=0;}max=Math.max(dp[i][j],max);}}return max;}
http://www.lryc.cn/news/42864.html

相关文章:

  • 手机验证发送及其验证(基于springboot+redis)保姆级
  • 【JavaScript 逆向】数美滑块逆向分析
  • 多任务之线程
  • (数字图像处理MATLAB+Python)第二章数字图像处理基础-第二节:色度学基础与颜色模型
  • 【华为OD机试 2023最新 】 网上商城优惠活动(C++)
  • 记一次CentOS 8 部署packstack部署OpenStack失败案例,请直接看最后
  • 【2023春招】美团技术岗笔试10min+AK
  • Echarts实现图表自适应屏幕分辨率
  • 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
  • 【蓝桥杯嵌入式】第十三届蓝桥杯嵌入式国赛客观题以及详细题解
  • java中Map遍历的4种方式
  • GCC 编译器的主要组件和编译过程
  • 蓝桥杯冲刺 - week2
  • 第十四届蓝桥杯三月真题刷题训练——第 20 天
  • 【C++】科普:C++中的浮点数怎么在计算机中表示?
  • Linux 多线程:多线程和多进程的对比
  • IO流你了解多少
  • 【C++】C++ 11 新特性之auto关键字
  • nodejs的后端框架egg,thinkjs,nestjs,nuxtjs,nextjs对比
  • SpringBoot @SpringBootTest 无法启动服务
  • PyTorch深度学习实战 | 神经网络的优化难题
  • 如何缩小pdf文件的大小便于上传?在线压缩pdf工具推荐
  • 使用C++编写一个AVL的增删改查代码并附上代码解释
  • React/ReactNative 状态管理: redux-toolkit 如何使用
  • 14基于双层优化的电动汽车优化调度研究
  • 古茗科技面试:为什么 ElasticSearch 更适合复杂条件搜索?
  • 【数据结构】哈希表
  • 物联网常用协议MQTT协议相关介绍
  • 【C语言进阶】13. 假期测评②
  • 【国产FPGA】国产FPGA搭建图像处理平台