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

算法笔记|Day37动态规划X

算法笔记|Day37动态规划X

  • ☆☆☆☆☆leetcode 300.最长递增子序列
    • 题目分析
    • 代码
  • ☆☆☆☆☆leetcode 674. 最长连续递增序列
    • 题目分析
    • 代码
  • ☆☆☆☆☆leetcode 718. 最长重复子数组
    • 题目分析
    • 代码

☆☆☆☆☆leetcode 300.最长递增子序列

题目链接:leetcode 300.最长递增子序列

题目分析

1.dp数组含义:dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度,取所有dp[i]中的最大值即为所求最长递增子序列的长度;
2.递推公式:if(nums[i]>nums[j])dp[i]=Math.max(dp[j]+1,dp[i])(如果遍历j从0到i-1,对所有满足nums[i]>nums[j]的j取dp[j]+1的最大值);
3.初始化:所有dp[i]=1(每一个i最长递增子序列大小至少都是1);
4.遍历顺序:从小到大。

代码

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

☆☆☆☆☆leetcode 674. 最长连续递增序列

题目链接:leetcode 674. 最长连续递增序列

题目分析

1.dp数组含义:dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度,取所有dp[i]中的最大值即为所求最长连续递增序列的长度;
2.递推公式:if(nums[i]>nums[i-1])dp[i]=dp[i-1]+1(如果nums[i]>nums[i-1],则取dp[i-1]+1);
3.初始化:所有dp[i]=1(每一个i最长递增子序列大小至少都是1);
4.遍历顺序:从小到大。

代码

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

☆☆☆☆☆leetcode 718. 最长重复子数组

题目链接:leetcode 718. 最长重复子数组

题目分析

1.dp数组含义:dp[i][j]表示以nums1[i-1]和nums2[j-1]为结尾的最长重复子数组长度,取所有dp[i][j]中的最大值即为所求最长重复子数组的长度;
2.递推公式:if(nums1[i-1]==nums2[j-1])dp[i][j]=dp[i-1][j-1]+1(如果结尾元素相等,dp[i][j]在dp[i-1][j-1]的基础上加一);
3.初始化:所有dp[i][0]=0,所有dp[0][j]=0;
4.遍历顺序:从小到大。

代码

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Websocket笔记
  • Tarjan的脱机最小公共祖先算法详解
  • Linux 数据结构 内核链表 栈
  • 联影一面面经
  • 探索VB与ASP.NET的融合艺术:Web开发的高效实践
  • Centos7目前能下载到的位置
  • HSE软件组件有哪些?如何实现HSE与主机的通信(同步/异步)?如何使用HSE提供的安全服务?
  • mybatis if标签判断字符串是否相等
  • 【图像去噪】论文精读:Spatial-Adaptive Network for Single Image Denoising(SADNet)
  • 大数据智能风控核心:模型
  • 通过 pnpm 安装依赖包会发生什么
  • Matlab simulink建模与仿真 第三章(连续模块库)
  • 【HarmonyOS NEXT星河版开发实战】灯泡定时开关
  • Unity 图表插件Xcharts的一些坑
  • 【高级IO总结】深度探索高级IO:五种IO模型、高级IO、Select、Poll、Epoll工作模式
  • Google 是如何开发 Web 框架的
  • docker python 配置
  • echarts的各种常用效果展示
  • httpie使用详解
  • Js基础知识(四) - js运行原理与机制
  • js正则,这点儿就够用了
  • Laravel5.4 Queues队列学习
  • linux学习笔记
  • mongodb--安装和初步使用教程
  • PHP的Ev教程三(Periodic watcher)
  • Python利用正则抓取网页内容保存到本地
  • python学习笔记 - ThreadLocal
  • spring security oauth2 password授权模式
  • spring-boot List转Page
  • 从0实现一个tiny react(三)生命周期
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 码农张的Bug人生 - 见面之礼
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 数据科学 第 3 章 11 字符串处理
  • 温故知新之javascript面向对象
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • # Panda3d 碰撞检测系统介绍
  • #pragam once 和 #ifndef 预编译头
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (13)Hive调优——动态分区导致的小文件问题
  • (20050108)又读《平凡的世界》
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (9)目标检测_SSD的原理
  • (多级缓存)多级缓存
  • (二十三)Flask之高频面试点
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (三)模仿学习-Action数据的模仿
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)人的集合论——移山之道
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • . NET自动找可写目录