day56 动态规划part13
300. 最长递增子序列
中等
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。
子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的
子序列。
思路:以nums【i】为结尾的最长递增子序列的长度可以由 nums【0】为结尾的最长递增子序列长度、nums[1为结尾的最长长度、……nums【i-1】为结尾的最长长度 比较得到。因此需要双层for循环。
dp[i] 的含义:
误解:从 nums【0】 到 nums【i】 的数组,其最长递增子序列为 dp【i】
正解:从任意位置开始,但以nums【i】元素作为结尾的所有 递增子序列中,最长的子序列长度为 dp【i】
class Solution {public int lengthOfLIS(int[] nums) {int len = nums.length;// dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度,注意是包含nums[i]这个元素的// 不信的话,给你一个数组{1,2,3,0,0,0},你会发现计算出来的dp[5] = 1 // 所以结尾不能返回 return dp[len - 1];int[] dp = new int[len]; Arrays.fill(dp, 1); // 请注意这里! 每一个i,对应的dp[i](即最长递增子序列)起始大小至少都是1.int res = 1; // 不能初始化为0,防止只有一个元素的数组,根本进不去for循环for (int i = 1; i < len; 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;}
}
674. 最长连续递增序列
简单
给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。
连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], …, nums[r - 1], nums[r]] 就是连续递增子序列。
class Solution {public int findLengthOfLCIS(int[] nums) {int[] dp = new int[nums.length]; // dp[i]:以下标i为结尾的连续递增的子序列长度为dp[i]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; // 不是 return dp[nums.length - 1];}
}
718. 最长重复子数组
中等
提示
给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。
注意:本题要求我们计算两个数组的最长公共子数组,且子数组在原数组中连续。所以必须是连续的才可以用:dp[i][j] = dp[i - 1][j - 1] +1;
思路: 讲解链接: 【LeetCode每日打卡.718.最长重复子数组】 https://www.bilibili.com/video/BV1eC4y187NR/?share_source=copy_web&vd_source=59d4002fe640642f48d7172733c88844
dp【i】【j】指数组下标以i-1为结尾的nums1和以j-1为结尾的nums2的最大重复子数组的长度。
// 如果在(i,j)这个位置是相同的,那么,就要去看(i - 1, j - 1)有没有相同,有相同的话就要加上(i,j)这一对,即 + 1

class Solution {public int findLength(int[] nums1, int[] nums2) {// 如果在(i,j)这个位置是相同的,那么,就要去看(i - 1, j - 1)有没有相同,有相同的话就要加上(i,j)这一对,即 + 1int[][] dp = new int[nums1.length][nums2.length];int res = 0;for (int i = 0; i < nums1.length; i++) { // 两个for循环逐个两两比较数组中的元素for (int j = 0; j < nums2.length; j++) {if (nums1[i] == nums2[j]) { // 如果取出的两元素相等if (i == 0 || j == 0) {dp[i][j] = 1; // 如果他俩有一个是开头元素,那前面没有别的元素了,它们又相同,所以等于1} else { // 如果他俩都不是开头元素dp[i][j] = dp[i - 1][j - 1] +1;}} else { // 如果取出的两元素不相等,那以他们结尾的两个数组不可能存在公共数组dp[i][j] = 0;}res = Math.max(res, dp[i][j]);}}return res;}
}
相关文章:
day56 动态规划part13
300. 最长递增子序列 中等 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,…...
Mybatis别名 动态sql语句 分页查询
给Mybatis的实体类起别名 给Mybatis的xml文件注册mapper映射文件 动态sql语句 1 if 2 choose 3 where 4 foreach 一)if 查询指定名称商品信息 语法: SELECT * FROM goods where 11 <if test "gName!null"> and g.g_name like co…...
【算法题】三道题理解算法思想--滑动窗口篇
滑动窗口 本篇文章中会带大家从零基础到学会利用滑动窗口的思想解决算法题,我从力扣上筛选了三道题,难度由浅到深,会附上题目链接以及算法原理和解题代码,希望大家能坚持看完,绝对能有收获,大家有更好的思…...
go env 命令详解
文章目录 1.简介2.格式3.示例4.环境变量参考文献 1.简介 go env 用于查看和设置 Go 环境变量。 默认情况下 go env 输出格式为 Shell 脚本格式(如 Windows 上是 batch 文件格式)。如果指定变量名称,则只输出变量的值。 2.格式 go env [-j…...
flutter 单例模式
总的思想就是: 确保整个应用程序中只有一个 TranslationService 实例。 避免重复创建相同的实例,节省资源。 为整个应用程序提供一个全局访问点,方便在不同地方使用同一个实例。 1.类创建个实例 2.然后用构造函数赋值给实例 3.其他地方调用时返回实例 import pack…...
1.7.2 python练习题15道
1、求出1 / 1 1 / 3 1 / 5……1 / 99的和 (1分之一1分之三1分支5....) 2、用循环语句,计算2 - 10之间整数的循环相乘的值 (2*3*4*5....10) 3、用for循环打印九九乘法表 4、求每个字符串中字符出现的个数如:helloworld 5、实现把字符串str …...
python如何获取word文档的总页数
最近在搞AI. 遇到了一个问题,就是要进行doc文档的解析。并且需要展示每个文档的总页数。 利用AI. 分别尝试了chatGPT, 文心一言, github copilot,Kimi 等工具,给出来的答案都不尽如人意。 给的最多的查询方式就是下面这种。 这个…...
python解压RAR文件
本文使用创作助手。 要在Python中解压RAR文件,你可以使用第三方库rarfile。以下是一个示例代码,演示如何解压RAR文件: 首先,你需要安装 rarfile 库。你可以使用以下命令进行安装: pip install rarfile然后ÿ…...
灯哥驱动器端口讲解----foc电机驱动必看
CS:是电流采样的引脚,三项采样电流,现在只给了两路,另外一路算出来就行了 in:三项电流输入,驱动电机使用。 en:没有用 SDA,SCL:I2C的引脚用来读取编码器的计数值 tx,rx:引出来了一路串口,没有用…...
lua 获取指定路径下的所有文件夹
一、io.popen 函数获取 io.popen 是 Lua 中的一个函数,它允许你执行一个外部命令并将命令的输出作为流处理。如果你想在 Lua 中通过 io.popen 执行 dir 命令(linux 命令是ls )来获取指定文件夹下的所有文件及其路径,你可以构造一个适用于 Windows 环境下…...
#Linux(SSH软件安装及简单使用)
(一)发行版:Ubuntu16.04.7 (二)记录: (1)终端键入(root权限)安装 apt-get install openssh-server 安装时遇到报错 E: Could not get lock /var/lib/dpkg/…...
Android中运动事件的处理
1.目录 目录 1.目录 2.前言 3.程序演示 4.第二种程序示例 5.扩展 2.前言 触摸屏(TouchScreen)和滚动球(TrackBall)是 Android 中除了键盘之外的主要输入设备。如果需要使用触摸屏和滚动球,主要可以通过使用运动事…...
【网安小白成长之路】3.MySQL环境配置以及常用命令(增删改查)
🐮博主syst1m 带你 acquire knowledge! ✨博客首页——syst1m的博客💘 🔞 《网安小白成长之路(我要变成大佬😎!!)》真实小白学习历程,手把手带你一起从入门到入狱🚭 &…...
【QGIS从shp文件中筛选目标区域导出为shp】
文章目录 1、写在前面2、QGIS将shp文件中目标区域输出为shp2.1、手动点选2.2、高级过滤 3、上述shp完成后,配合python的shp文件,即可凸显研究区域了 1、写在前面 利用shp文件制作研究区域mask,Matlab版本,请点击 Matlab利用shp文…...
react native hooks 如何避免重复请求
在React Native中使用Hooks时,为了避免重复发送网络请求,你可以采取以下几个方法: 使用 useRef 存储最新请求标识或结果: 可以创建一个 useRef 用来存储上一次请求的标识(如请求的URL加上请求参数的哈希值)…...
【任职资格】某大型制造型企业任职资格体系项目纪实
该企业以业绩、责任、能力为导向,确定了分层分类的整体薪酬模式,但是每一名员工到底应该拿多少工资,同一个岗位的人员是否应该拿同样的工资是管理人员比较头疼的事情。华恒智信顾问认为,通过任职资格评价能实现真正的人岗匹配&…...
线程安全问题及解决
1.前言 当我们使用多个线程访问同一资源时(可以是同一变量,同一文件,同一条记录),若多个线程只要只读操作,则不会发生线程安全问题;如果多个线程既有可读又有可写操作时,将可能导致线程安全问题. 2.提出问题 例 : 三个…...
Excel·VBA数组平均分组问题
看到一个帖子《excel吧-数据分组问题》,对一组数据分成4组,使每组的和值相近 上一篇文章《ExcelVBA数组分组问题》,解决了这个帖子问题的第1步,即获取所有数组分组形式的问题 接下来要获取分组和值最相近的一组,只需计…...
高防服务器、高防IP、高防CDN的工作原理是什么
高防IP高防CDN我们先科普一下是什么是高防。“高防”,顾名思义,就犹如网络上加了类似像盾牌一样很高的防御,主要是指IDC领域的IDC机房或者线路有防御DDOS能力。 高防服务器主要是比普通服务器多了防御服务,一般都是在机房出口架设…...
【Flask开发实战】安装mysql数据库与配置连接
1、安装mysql 通过yum方式安装MySQL服务器: sudo yum install mysql-server 在安装过程中,系统可能会要求确认安装。按下Y键并按回车键继续。 安装完成后,MySQL服务器应已自动启动。可以使用以下命令查看和启动MySQL服务: sudo…...
掌握NeuralForecast:构建企业级时间序列预测解决方案
掌握NeuralForecast:构建企业级时间序列预测解决方案 【免费下载链接】neuralforecast Nixtla/neuralforecast - 一个Python库,提供统一的接口来训练和预测时间序列数据,使用神经网络方法,如N-BEATS和N-HITS,以及传统的…...
3步精通Rufus:ext文件系统格式化实战攻略
3步精通Rufus:ext文件系统格式化实战攻略 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 在Linux系统管理中,USB设备格式化常常成为技术人员的痛点——要么工具功能单一&a…...
高效清理重复文件:三步释放50GB存储空间的智能解决方案
高效清理重复文件:三步释放50GB存储空间的智能解决方案 【免费下载链接】czkawka 一款跨平台的重复文件查找工具,可用于清理硬盘中的重复文件、相似图片、零字节文件等。它以高效、易用为特点,帮助用户释放存储空间。 项目地址: https://gi…...
在Aspen Plus中用Linde - Hampson工艺液化CO₂:从燃煤电厂捕获气体的模拟探索
在 Aspen Plus 中使用 Linde-Hampson 工艺液化CO2该模拟使用 Aspen Plus 对从燃煤电厂捕获的富含二氧化碳的气体进行液化。在应对气候变化的征程中,二氧化碳捕获与封存(CCS)技术愈发关键。从燃煤电厂捕获富含二氧化碳的气体并将其液化&#x…...
终极视频修复指南:如何使用untrunc拯救损坏的MP4文件
终极视频修复指南:如何使用untrunc拯救损坏的MP4文件 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否曾经遇到过珍贵的视频文件突然无法播放&…...
OptiScaler高效配置全攻略:多显卡上采样技术实用指南
OptiScaler高效配置全攻略:多显卡上采样技术实用指南 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler OptiScaler是一款…...
知识图谱入门第一步:用SpringBoot+HanLP快速构建你的中文实体识别与关系抽取Demo
知识图谱实战:基于SpringBoot与HanLP的中文实体关系抽取系统构建指南 在人工智能与大数据技术蓬勃发展的今天,知识图谱作为结构化知识的重要载体,正在智能搜索、推荐系统、金融风控等领域展现出巨大价值。但对于许多刚接触这一领域的开发者而…...
可视化是对比原始数据和填补数据的强大工具。你可以使用箱线图、密度图或散点图来可视化原始数据和填补后的数据
下面的内容摘录自《用R探索医药数据科学》专栏文章的部分内容(原文5665字)。 2篇2章6节:R的多重填补法中随机回归填补法的应用,MICE包的实际应用和统计与可视化评估-CSDN博客 在数据分析中,缺失数据是常见且具有挑战性…...
无人机飞控必看:MPU6050互补滤波实战对比测试(DMP vs Mahony)
MPU6050姿态解算实战:Mahony互补滤波与DMP深度对比 去年调试四轴飞行器时,我曾连续72小时盯着屏幕上的姿态角曲线发呆——为什么明明静止的飞控板,Roll角却以每小时5度的速度缓慢偏移?这个困扰无数开发者的经典问题,最…...
STVD与STVP实战指南:从环境搭建到串口烧录全流程解析
1. STVD与STVP开发环境全解析 第一次接触STM8开发的朋友,往往会被STVD和STVP这两个工具搞得一头雾水。我刚开始用的时候也踩过不少坑,比如明明安装了STVD却编译不了C程序,烧录时总是提示设备保护。后来才发现,STM8开发需要工具链的…...
