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

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

文章目录

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


一、300.最长递增子序列

题目链接

代码如下:

class Solution {
public:int lengthOfLIS(vector<int>& nums) {if (nums.size() <= 1) return nums.size();vector<int> dp(nums.size(), 1); // 以每个数字为结尾的最长递增子序列至少为1int result = 0; // 这里初始化0或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); // 遍历i-1以内的所有数字,如果有比nums[i]小的,就可以在以该数字为结尾的最长递增子序列后加上1个nums[i],组成以nums[i]为结尾的新的最长递增子序列。在i-1之前可能有很多数字小于nums[i],所以要取能组成的最长子序列}if (dp[i] > result) result = dp[i]; // 最后的结果不在dp[nums,size() - 1]中,因为可能最长的递增子序列不是以最后一个数字为结尾的,所以要取以所有数字为结尾的最长递增子序列的最大值}return result;}
};

二、674.最长连续递增序列

题目链接

代码如下:

class Solution {
public:int findLengthOfLCIS(vector<int>& nums) {if (nums.size() <= 1) return nums.size(); // 若只有一个数字,直接返回1,不会继续执行;如果没有数字,直接返回0,不会继续执行。这样写是和题300保持一致,不会混淆int result = 0;vector<int> dp(nums.size(), 1);for (int i = 1; i < nums.size(); i++) {if (nums[i] > nums[i - 1]) dp[i] = dp[i - 1] + 1;if (dp[i] > result) result = dp[i];}return  result;}
};//if (nums.size() == 0) return 0;
//int  result = 1;
// 如果是这样写,result就应该初始化为1,因为如果result=0,输入只有一个数字,不会进入下面的for循环,结果输出0了,但正确应该是1。

三、718.最长重复子数组

题目链接

代码如下:

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;}
};
http://www.lryc.cn/news/103867.html

相关文章:

  • 1、Tomcat
  • centos 内网实现mail发送
  • 【雕爷学编程】MicroPython动手做(25)——语音合成与语音识别2
  • 如何用C#实现上位机与下位机之间的Wi-Fi通信?
  • 学习笔记|大模型优质Prompt开发与应用课(二)|第五节:只需3步,优质Prompt秒变应用软件
  • VB客运中心汽车售票管理系统设计与实现
  • 计算机网络——学习笔记
  • JSON对象
  • 26 用lsqnonlin求解最小二乘问题(matlab程序)
  • Verilog语法学习——LV6_多功能数据处理器
  • 发送信息----策略模式
  • PySpark介绍与安装
  • 细讲TCP三次握手四次挥手(三)
  • vue 组件中 data 为什么必须是函数
  • 从零开始学python(十二)如何成为一名优秀的爬虫工程师
  • 为高性能计算构建,由亚马逊云科技Amazon Graviton3E驱动的最新实例正式可用
  • BUUCTF题目Crypto部分wp(持续更新)
  • A Generalized Loss Function for Crowd Counting and Localization阅读笔记
  • SocketD协议单链接双向RPC模式怎么实现
  • apache poi 设置背景颜色
  • Vue2-Vue3组件间通信-EventBus方式-函数封装
  • 【SpringBoot】| SpringBoot 和 web组件
  • dflow工作流使用1——架构和基本概念
  • python小游戏课程设计报告,python游戏课程设计报告
  • 使用Windbg分析从系统应用程序日志中找到的系统自动生成的dump文件去排查问题
  • 后端技术趋势指南|如何选择自己的技术方向
  • Delphi XE的原生JSONObject如何判断键值是否存在?
  • Go Runtime功能初探
  • 01|Oracle学习(监听程序、管理工具、PL/SQL Developer、本地网络服务介绍)
  • 滴滴数据服务体系建设实践