代码随想录算法训练营第五十二天 _ 动态规划_300. 最长递增子序列、674.最长连续递增序列、718.最长重复子数组。

学习目标:

动态规划五部曲:
① 确定dp[i]的含义
② 求递推公式
③ dp数组如何初始化
④ 确定遍历顺序
⑤ 打印递归数组 ---- 调试
引用自代码随想录!

60天训练营打卡计划!

学习内容:

300. 最长递增子序列

  • 动态规划五步曲:
    ① 确定dp[i]的含义 :以nums[i] 为尾的最长的递增子序列的长度
    ② 求递推公式 : dp[i] = max(dp[j]+1, dp[i])
    ③ dp数组如何初始化 : dp[i] = 1 (因为在判断后才会为dp赋值,有一些dp[i]保持为0,会导致整体都出问题)
    ④ 确定遍历顺序 : i的遍历顺序是从小到大 j的遍历顺序随意(从小到大 / 从大到小)
class Solution {
    public int lengthOfLIS(int[] nums) {
        int size = nums.length;
        // 以nums[i]为结尾的递增子序列的最大长度。
        int[] dp = new int[size];
        int res = 1;

        // 初始化
        Arrays.fill(dp,1);

        for(int i = 1; i < size; i++){
            for(int j = 0; j < i; j++){
                if(nums[j] < nums[i])
                    dp[i] = Math.max(dp[j]+1,dp[i]);
            }
            System.out.print(dp[i] + " ");
            res = Math.max(res, dp[i]);
        }

        return res;
    }
}

674.最长连续递增序列

  • 动态规划五步曲:
    ① 确定dp[i]的含义 : 以nums[i] 为尾的最长的连续递增子序列的长度
    ② 求递推公式 : dp[i] = dp[j-1]+1
    ③ dp数组如何初始化 : dp[i] = 1
    ④ 确定遍历顺序 : 从前向后
class Solution {
    public int findLengthOfLCIS(int[] nums) {
        int res = 1;
        int size = nums.length;
        int[] dp = new int[size];

        // 初始化
        Arrays.fill(dp,1);

        for(int i = 1; i < size; i++){
            // 因为是连续的,所以递推公式改变了。
            if(nums[i] > nums[i-1]){
                dp[i] = dp[i-1] + 1;
            }
            res = Math.max(res,dp[i]);
        }

        return res;
    }
}

718.最长重复子数组

因为本题中有两个数组,所以使用二维的dp数组会更符合我们的需求。

  • 动态规划五步曲:
    ① 确定dp[i][j]的含义 : 以 i-1 为结尾的 nums1 和以 j-1 为结尾的 nums2 的最大重复子数组的长度。
    ② 求递推公式 : dp[i+1][j+1] = dp[i][j]+1;
    ③ dp数组如何初始化 : 第一行和第一列为0
    ④ 确定遍历顺序 : 从前向后
    二维数组的输出结果:
    在这里插入图片描述
    按照上述的输出结果,本题应该可以压缩空间,使用一维数组实现! – 还没学会,再学一学!
// 二维数组
class Solution {
    public int findLength(int[] nums1, int[] nums2) {
        int size1 = nums1.length;
        int size2 = nums2.length;
        int res = 0;
        int[][] dp = new int[size1+1][size2+1];

        // 初始化   第一行和第一列为0

        for(int i = 0; i < size1; i++){
            for(int j = 0; j < size2; j++){
                if(nums1[i] == nums2[j])
                    dp[i+1][j+1] = dp[i][j]+1;
                // System.out.print(dp[i+1][j+1] + " ");
                res = Math.max(res, dp[i+1][j+1]);
            }
            // System.out.println("");
        }

        return res;
    }
}

学习时间:

  • 上午两个半小时,整理文档半小时。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

外汇天眼:投资者最大的敌人——你的大脑

人类大脑的三层构成 为了深入了解投资者做出非理性决策的原因&#xff0c;考虑人脑及其对快乐和痛苦的反应是很有启发性的。 我们的大脑已经进化了数百万年&#xff0c;由三层组成。 核心是我们原始的大脑&#xff0c;它提供了维持我们生存的战斗或逃跑本能。 上面覆盖着一个…

前端如何使用express写一个简单的服务

相信不少前端平常在日常工作中肯遇见过后端API接口没开发出来的时候吧 前端提升小技巧 自己使用nodejs——express ,koa&#xff0c;egg开发接口吧(本人比较喜欢egg和express) 今天先分享一下express 下面是一个简单的demo 1、首先咱们可以新建一个文件夹,创建一个app.js 下…

循环神经网络(1)循环神经网络的记忆能力实验

循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一类具有短期记忆能力的神经网络&#xff0e;在循环神经网络中&#xff0c;神经元不但可以接受其他神经元的信息&#xff0c;也可以接受自身的信息&#xff0c;形成具有环路的网络结构&#xff…

Github、Gitee优秀的开源项目分享

先赞后看&#xff0c;养成习惯&#xff01;&#xff01;&#xff01;❤️ ❤️ ❤️ 资源收集不易&#xff0c;如果喜欢可以关注我哦&#xff01; ​如果本篇内容对你有所启发&#xff0c;欢迎访问我的个人博客了解更多内容&#xff1a;链接地址 ​ Java 项目 javacore - Java …

ArkTS组件通信

父子通信 情况一&#xff1a;子组件只展示父组件中的状态 父组件通过 State修饰符 定义变量&#xff0c;子组件通过 Prop修饰符 获取变量。 Prop是 「单向传递」&#xff0c;父组件将变量「拷贝」一份交给子组件使用&#xff0c;子组件不可修改变量。 父组件 // 声明变量 …

java写个爬虫抓取汽车之家车型配置参数

前几天有个搞工程的表弟找我&#xff0c;问我什么车好&#xff0c;可以经常跑工地的&#xff0c;看上去又有面子。于是我挥动发财的小手&#xff0c;写一个爬虫程序&#xff0c;筛选并整理了一些数据&#xff0c;并附上下载的图片提供参考&#xff0c;看中了果断第二天提车到手…

C#教程(一):面向对象

1、介绍 C#是一种多范式编程语言&#xff0c;但其中一个主要的编程范式是面向对象编程&#xff08;OOP&#xff09;。面向对象编程有一些特点&#xff0c;而C#提供了丰富的功能来支持这些特点。 2、面向对象特点 封装&#xff08;Encapsulation&#xff09;&#xff1a; 封装…

华为OD机试-传递悄悄话(JavaPythonGo)100%通过率

题意 给定一个二叉树,每个节点上站着一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二又树所有节点上的人都接收到悄悄话花费的时间。 输入 给定一叉树 09 20-1-1 157-1-1-1-132 注:-1表示空节…

Unity | AVpro的最基础使用方法(视频播放插件)

一、 AVpro的使用方法 (一)准备播放器MediaPlayer 1. AVpro的播放器是MediaPlayer&#xff0c;在Heirarchy面板里创建 2.播放器里放视频 a.把视频放到StreamingAssets文件夹下 b.你就可以在MediaPlayer里面找到这个视频 c.选中以后&#xff0c;就会变成 这里点击播放可以播放…

WEX ISO 8583通信协议

1、什么是ISO 8583 ISO 8583是国际标准化组织&#xff08;ISO&#xff09;定义的一种金融交易协议&#xff0c; 它定义了一种消息格式&#xff0c;用于在不同的金融系统之间传递交易请求和响应2、Java如何实现ISO 8583 1、引入依赖包<dependency><groupId>org.jp…

spring boot 实现直播聊天室(二)

spring boot 实现直播聊天室(二) 技术方案: spring bootnettyrabbitmq 目录结构 引入依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.96.Final</version> </dependency>Si…

使用YOLOv8训练图集详细教程

准备自己的数据集 训练YOLOv8时&#xff0c;选择的数据格式是VOC&#xff0c;因此下面将介绍如何将自己的数据集转换成可以直接让YOLOv8进行使用。 1、创建数据集 我的数据集都在保存在mydata文件夹&#xff08;名字可以自定义&#xff09;&#xff0c;目录结构如下&#xf…

万界星空科技MES---制造企业的加工生产模式

在现代制造业中&#xff0c;加工生产模式是制造企业组织和管理生产过程的重要方面。不同的加工模式适用于不同的生产需求和产品类型。其中流水型、离散型和混合型是三种常见的加工生产模式。1. 流水型加工模式 流水型加工模式是一种高度自动化的生产方式&#xff0c;适用于…

羊大师解答,鲜羊奶应该怎样煮才好喝?

羊大师解答&#xff0c;鲜羊奶应该怎样煮才好喝&#xff1f; 你是否对如何煮鲜羊奶感到困惑&#xff1f;继续阅读本文&#xff0c;小编羊大师将为大家揭秘鲜羊奶的烹饪方法。不管是作为配料还是单独享用&#xff0c;了解如何煮鲜羊奶将会让您获得更加美味又营养丰富的食物。接…

mysql8 windows下修改my.ini配置 this is incompatible with sql_mode=only_full_group_by

1、找到安装路径 show variables like %sql_mode;SHOW VARIABLES LIKE config_file;SHOW VARIABLES LIKE %datadir%;SHOW VARIABLES; 2、修改 sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

第二证券:防御性板块逆势活跃 A股结构性机会轮动

昨日商场慎重张望心境升温&#xff0c;个股跌多涨少。防御性板块中的医药、燃气板块涨幅居前。医药板块中&#xff0c;拓新药业、森萱医药涨超19%&#xff0c;百利天恒、亨迪药业、新赣江等多股涨超10%。 据中国气候网消息&#xff0c;从12月12日夜间初步&#xff0c;新一轮寒…

注塑模具ERP有哪些功能?可以帮助企业解决什么难题

不同的注塑模具有不同的业务流程和生产环节&#xff0c;有些生产企业在订单、物料需求计划、车间、班组负荷评估、项目成本核算、边角料统计分析等方面还存在不少问题。 与此同时&#xff0c;也有部分注塑模具企业通过ERP软件科学制定注塑生产排产&#xff0c;智能核算注塑物料…

算法通关村第十八关-黄金挑战回溯困难问题

大家好我是苏麟 , 今天带来几道回溯比较困难的题 . 回溯有很多比较难的问题&#xff0c;这里我们看两个&#xff0c;整体来说这两个只是处理略复杂&#xff0c;还不是最难的问题 . 大纲 IP问题 IP问题 描述 : 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 …

SAP报错 Exception condition “CNTL_ERROR“ triggered

报错背景&#xff0c;我写了个function alv跳转屏幕&#xff0c;而且有修改事件的程序&#xff0c;但是在我反复跳转修改操作&#xff0c;点创建单据的时候&#xff0c;我的程序直接dump啦 报错如下&#xff1a; 通过查询SAPQ&A查询到对应的解决方案。 机器翻译&#xff…

processon使用及流程图和泳道图的绘画(登录界面流程图,门诊流程图绘制门诊泳道图,住院泳道图,OA会议泳道图),Axure自定义元件

目录 一.processon图形的使用场景介绍 二.流程图绘画 三.泳道图的绘画 1.绘制门诊流程图绘制门诊泳道图 2. 绘制住院泳道图​编辑 3.绘制药库采购入库流程图 4.绘制OA会议泳道图 四.Axure自定义元件 1.Axure载入元件库 一.processon图形的使用场景介绍 二.流程图绘画 示例&…