刷题记录|Day52● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

core_analyzer分析c++程序内存占用 环境:centos; 进程:单进程多线程c++程序; 问题:1. 分析系统内存占用; 2. 分析ptmalloc内存空洞(bins上的空闲chunk的大小); 包括:1. 占用了很大内存的c++进程; 2. gcore(在进程不core dump的情况下生成core文件); 3. core_analyzer(分析gcor... 阅读详情

● 300.最长递增子序列

题目描述

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。

子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

示例 1:

输入:nums = [10,9,2,5,3,7,101,18]
输出:4
解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。

示例 2:

输入:nums = [0,1,0,3,2,3]
输出:4

示例 3:

输入:nums = [7,7,7,7,7,7,7]
输出:1

提示:

  • 1 <= nums.length <= 2500
  • -10<sup>4</sup> <= nums[i] <= 10<sup>4</sup>

进阶:

  • 你能将算法的时间复杂度降低到 O(n log(n)) 吗?

解题思路

class Solution {
public:
    int lengthOfLIS(vector<int>& nums) {
        vector<int>dp(nums.size(),1);
        for (int i = 1; i < nums.size(); ++i) {
            for (int j = 0; j < i; ++j) {
                if(nums[i]>nums[j]) {
                    dp[i] = max(dp[i], dp[j]+1);
                }
            }
        }
        // for(int i: dp) cout<<i<<" ";
        return *max_element(dp.begin(), dp.end());
    }
};

● 674. 最长连续递增序列

题目描述

给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。

连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。

示例 1:

输入:nums = [1,3,5,4,7]
输出:3
解释:最长连续递增序列是 [1,3,5], 长度为3。
尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为 5 和 7 在原数组里被 4 隔开。 

示例 2:

输入:nums = [2,2,2,2,2]
输出:1
解释:最长连续递增序列是 [2], 长度为1。

提示:

  • 1 <= nums.length <= 10<sup>4</sup>
  • -10<sup>9</sup> <= nums[i] <= 10<sup>9</sup>

解题思路

class Solution {
public:
    int findLengthOfLCIS(vector<int>& nums) {
        vector<int> dp(nums.size(),1);
        for(int i = 1; i < nums.size(); ++i) {
            if(nums[i-1] >= nums[i]) {
                dp[i] = 1;
            }
            else {
                dp[i] = dp[i-1] + 1;
            }
        }
        return *max_element(dp.begin(), dp.end());
    }
};

在这里插入图片描述

● 718. 最长重复子数组

题目描述

给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。

示例 1:

输入:nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]
输出:3
解释:长度最长的公共子数组是 [3,2,1] 。

示例 2:

输入:nums1 = [0,0,0,0,0], nums2 = [0,0,0,0,0]
输出:5

提示:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 100

解题思路

class Solution {
public:
    int findLength(vector<int>& nums1, vector<int>& nums2) {
        vector<vector<int>> dp (nums1.size() + 1, vector<int>(nums2.size() + 1, 0));
        int result = 0;
        for (int i = 1; i <= nums1.size(); i++) {
            for (int j = 1; j <= nums2.size(); j++) {
                if (nums1[i - 1] == nums2[j - 1]) {
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                }
                if (dp[i][j] > result) result = dp[i][j];
            }
        }
        return result;
    }
};
DPARSF高级版 vs 基础版怎么选?没有T1数据也能做fMRI分析吗? 本文深度对比了DPARSF高级版与基础版在fMRI分析中的核心差异与适用场景,特别针对无T1数据的情况提供了实战解决方案。高级版依赖T1像实现高精度配准,适合需要精确解剖定位的研究;基础版则无需T1数据,适用于功能连接等相对空间要求不高的分析。文章还提供了版本选择决策树和常见问题解决方案,帮助研究者根据实际需求做出最优选择。 阅读详情

相关推荐

汽车OBD接口实战:如何用STM32读取CAN总线数据(附完整代码)

本文详细介绍了如何利用STM32微控制器通过汽车OBD接口读取CAN总线数据的完整实战方案。内容涵盖硬件连接(如OBD引脚定义与TJA1050收发器接线)、STM32的CAN外设初始化与滤波器配置,并深入解析OBD-II诊断协议,演示了如何请求和解析发动机转速、车速等关键数据。文末提供了构建稳定数据读取系统的代码框架与错误处理建议,为嵌入式开发者和汽车电子爱好者提供了从零到一的实践指南。

9q8w7e6r5的博客 297

代码随想录算法训练营Day52|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

在结束代码随想录中的股票问题后,又是一个新的专题,本题是子序列问题的第一题,子序列问题是动态规划解决的经典问题。本题相较于上一题,最大的区别在于“连续”,对于连续问题的处理必须要重点考虑相邻元素。本题与前面几题又不一样了,本题比较的是两个数组拥有的最长重复的子数组,因此不能仅仅再只针对一个数组,dp数组也要变成二维;子序列问题第一天结束!

m0_68682181的博客 1332

LSCM最小二乘保角参数化

LSCM最小二乘保角参数化 最小二乘思想 已知一组点的数据(x,y) x x1x_1x1​ x2x_2x2​ x3x_3x3​ … xnx_nxn​ y y1y_1y1​ y2y_2y2​ y3y_3y3​ … yny_nyn​ 可以近似为线性关系 y=ax+by=ax+by=ax+b ,目标为确定常数 aaa , bbb ; 解法:找到 aaa , bbb ,使得所有 yiy_iyi​ 与 axi+bax_i+baxi​+b 偏差的平方和 Q=∑i=1n(yi−axi−b)2 Q=\s

weixin_49732532的博客 4253

刷题DAY52 | LeetCode 300-最长递增子序列 674-最长连续递增序列 718-最长重复子数组

如果定义 dp[i][j]为 以下标i为结尾的A,和以下标j 为结尾的B,那么 第一行和第一列毕竟要进行初始化,如果nums1[i] 与 nums2[0] 相同的话,对应的 dp[i][0]就要初始为1, 因为此时最长重复子数组为1。dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。举个例子A[0]如果和B[0]相同的话,dp[1][1] = dp[0][0] + 1,只有dp[0][0]初始为0,正好符合递推公式逐步累加起来。

wangs29的博客 1231

零代码实战:基于Coze平台打造测试用例生成AI助手

本文详细介绍了如何利用Coze平台零代码打造测试用例生成AI助手,通过智能体和工作流配置,实现需求文档自动解析与结构化测试用例生成。该方案显著提升测试效率,特别适合敏捷开发中频繁变更的需求场景,帮助测试工程师快速应对挑战。

weixin_42526015的博客 209

JS逆向-B站评论数据w_rid参数和wts参数

本文是该专栏的第69篇,后面会持续分享python爬虫干货知识。本文以B站的评论数据为例,通过JS逆向获取其中的w_rid参数以及wts参数生成规律。具体的“逆向”思路逻辑,笔者将会详细介绍每个步骤,并且将在正文结合“完整代码”来详细介绍。废话不多说,具体细节部分以及详细思路逻辑,笔者将在正文结合完整代码进行详细说明。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 2049

Day 52 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

​ 做 递增比较的时候,如果比较 nums[j] 和 nums[i] 的大小,那么两个递增子序列一定分别以nums[j]为结尾和nums[i]为结尾。,那么子序列 [nums[l], nums[l + 1], …​ 所以:if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1);​ 如果是以下标i为结尾或者以j为结尾,则需要额外初始化dp[i][0]或dp[0][j];例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

qq_46025584的博客 1102

华为od 面试八股文_测试/测试开发_05_含答案

华为od 面试八股文_测试/测试开发_05_含答案

MISAYAONE的博客 2558

java算法day52 | 动态规划part13 ● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

子序列问题是动态规划解决的经典问题,当前下标i的递增子序列长度,其实和i之前的下表j的子序列长度有关系,那又是什么样的关系呢。注意这里不是要dp[i] 与 dp[j] + 1进行比较,而是我们要取dp[j] + 1的最大值。On2On。

weixin_44802990的博客 1364

UNet + Shuffle Attention:一种轻量高效的医学图像分割注意力机制

本文提出了一种轻量高效的医学图像分割方法,将Shuffle Attention模块嵌入UNet的上采样路径中。Shuffle Attention通过通道分组注意力机制增强关键特征,同时保持计算轻量化。该方法在上采样后应用注意力模块,有效融合高层语义与低层细节,计算开销小且易于部署。实验表明,该模型在保持UNet原有优势的基础上,通过注意力机制提升了特征聚焦能力,适用于多种图像分割任务。未来可进一步结合空间注意力或Transformer模块以增强模型性能。

Henry的博客 240

【WorkBuddy专栏14】专家不是「换皮」——角色切换、训练机制与自我进化深度拆解

WorkBuddy专栏14】专家不是「换皮」——角色切换、训练机制与自我进化深度拆解

AI人人懂 593

代码随想录算法训练营Day52 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组 | Python | 个人记录向

动态规划:300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组。

Python基本算法 1025

【即插即用模块】Transformer篇 | CVPR 2025 | D2T:双域特征融合,完美适配缺陷检测/小目标检测和分割等频域细节敏感的任务!

本文提出了一种基于小波和原型增强的双域Transformer(WPFormer)用于像素级表面缺陷检测。该模型通过Dual-domain Transformer (D2T)模块融合频域和空间域特征:小波增强交叉注意力(WCA)分解高低频特征并加权平衡,增强缺陷细节捕捉;原型引导注意力(PCA)生成全局原型向量强化关键信息聚合。实验表明,该模块在缺陷检测任务中性能优于现有方法,通过频域细节增强和全局依赖建模有效提升了复杂场景下的检测效果。代码已开源,适用于对频域敏感的目标检测和分割任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1374

草稿代码随想录算法训练营第day52|300.最长递增子序列 、 674. 最长连续递增序列 、 718. 最长重复子数组

连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。即当A[i - 1] 和B[j - 1]相等的时候,dp[i][j] = dp[i - 1][j - 1] + 1;根据dp[i][j]的定义,dp[i][j]的状态只能由dp[i - 1][j - 1]推导出来。

qq_60513199的博客 686

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

代码随想录刷题day52 300.最长递增子序列;674. 最长连续递增序列;718. 最长重复子数组

代码随想录刷题day52

weixin_43127049的博客 901

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

代码随想录-算法训练营day52(动态规划13:最长递增子序列,最长连续递增序列,最长重复子数组)

动态规划13:子序列问题

weixin_61931006的博客 833

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

代码随想录Day52|300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

weixin_46620779的博客 608

Day52【动态规划】300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

子序列问题:如何定义 dp 数组?

yangjihua的个人笔记博客 1011

C++ day52 最长递增子序列 最长连续递增子序列 最长重复子数组

dp[i]的最大值不一定是在dp[nums.size()-1],可能出现在各个位置,因此需要遍历一遍。

qq_43773652的博客 927

代码随想录算法训练营day52 | 动态规划之子序列 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

动态规划之子序列 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

baimaozi_007的博客 696

算法记录Day52|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

打卡300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

miyu325的博客 655

代码随想录算法训练营day52 | 300.最长递增子序列,674. 最长连续递增序列,718. 最长重复子数组

1、子数组相关题目要从尾部元素去定义dp数组;2、两个不同序列比较时,递推公式需要考虑指针对齐的问题;3、718. 最长重复子数组中dp[i][j]表示索引为i-1和j-1处的最长公共子序列,可以简化初始化状态。

2301_77450803的博客 1015

DAY52:动态规划(十七)子序列问题:最长递增子序列+最长连续递增序列+最长重复子数组

本题的最大值并不在dp数组末尾,因为每个数据都可能比前面的数字要小。最大长度可能是dp数组中间位置的dp[i],所以需要建个result存最大值。初始化要注意,本题每个以i为结尾的递增子序列,长度最小是1而不是0!本题难点在于,比较两个数组,得到重复且连续的最长子数组,用一维的DP数组无法同时表示两个数组的状态。我们需要用一个二维的矩阵来比较两个数组的所有状态。dp[0][j]和dp[i][0]的情况都需要单独初始化。

CFY1226的博客 1159

算法Day52 | 300.最长递增子序列,674. 最长连续递增序列,718. 最长重复子数组

zsbd

雨后的放线君 383

代码随想录二刷day52 | 动态规划之子序列 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

动态规划之子序列 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

baimaozi_007的博客 520

Day52|leetcode 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,7,7,7,7,7]

m0_74583479的博客 424
上一篇: 刷题记录|Day49● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II
下一篇: 刷题记录|Day53 ● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划
null_one
博客等级 码龄8年 847粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值