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

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


文章目录

  • 代码随想录算法训练营Day 52 | 动态规划part13 | 300.最长递增子序列、674. 最长连续递增序列 、718. 最长重复子数组
  • 300.最长递增子序列
    • 一、一维DP
  • 674. 最长连续递增序列
    • 一、贪心
    • 二、动态规划
  • 718. 最长重复子数组
    • 一、二维动态规划
    • 二、转换为字符串判断
    • 三、一维DP


300.最长递增子序列

题目链接

一、一维DP

class Solution(object):def lengthOfLIS(self, nums):""":type nums: List[int]:rtype: int"""if len(nums) <= 1:return len(nums)# dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度dp=[1]*len(nums)for i in range(1,len(nums)):for j in range(i):if nums[j]<nums[i]:dp[i]=max(dp[i],dp[j]+1)return dp[-1]

674. 最长连续递增序列

题目链接

一、贪心

class Solution(object):def findLengthOfLCIS(self, nums):""":type nums: List[int]:rtype: int"""maxcount =1count=1for i in range(len(nums)-1):  if nums[i+1]>nums[i]:count +=1      else: #不连续,count从头开始count =1maxcount = max(maxcount,count)return maxcount

二、动态规划

class Solution(object):def findLengthOfLCIS(self, nums):""":type nums: List[int]:rtype: int"""if len(nums) <= 1:return len(nums)# 动态规划dp=[1]*len(nums)res =1for i in range(1,len(nums)):if nums[i-1]<nums[i]:dp[i]=dp[i-1]+1res = max(res,dp[i])return res

718. 最长重复子数组

题目链接

一、二维动态规划

class Solution(object):def findLength(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: int"""# dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。 (特别注意: “以下标i - 1为结尾的A” 标明一定是 以A[i-1]为结尾的字符串 )dp=[[0]*(len(nums2)+1) for _ in range(len(nums1)+1)]res=0# 全初始化为0# 递推公式for i in range(1,len(nums1)+1):for j in range(1,len(nums2)+1):if nums1[i-1]==nums2[j-1]:dp[i][j]=dp[i-1][j-1]+1res=max(res,dp[i][j])return res

二、转换为字符串判断

class Solution(object):def findLength(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: int"""s1 = "".join([chr(num) for num in nums1])s2 = "".join([chr(num) for num in nums2])n, res = len(s1), 0for i in range(n):for j in range(res+i+1, n+1):if s1[i:j] in s2:res = j - ielse:breakreturn res

三、一维DP

class Solution(object):def findLength(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: int"""# dp[i]:最长公共子数组长度dp=[0]*(len(nums2)+1)res=0for i in range(1,len(nums1)+1):for j in range(len(nums2), 0, -1):if nums1[i-1] == nums2[j-1]:dp[j] = dp[j-1] + 1else:dp[j]=0res=max(res,dp[j])return res

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12k Star!Continue:Github Copilot 开源本地版、开发效率和隐私保护兼得、丰富功能、LLM全覆盖!

原文链接&#xff1a;&#xff08;更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号&#xff01;&#xff09; 12k Star&#xff01;Continue&#xff1a;Github Copilot 开源本地版、开发效率和隐私保护兼得、丰富功能、LLM全覆盖&#xff01; &…

Beamer中二阶导、一阶导数的显示问题

Beamer中二阶导、一阶导数的显示问题 在beamer中表示 f ′ f f′和 f ′ ′ f f′′时发现导数符号距离 f f f很近 \documentclass{beamer} \usepackage{amsmath,amssymb}\begin{document} \begin{frame}\frametitle{Derivative}Derivative:\[f^{\prime}(x) \quad f \quad…

C# 读取txt大文件

1GB以下 using System.Text;namespace DotnetReadTxt;class Program {static void Main(string[] args){try{Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);var gb2312 Encoding.GetEncoding("GB2312");int index 0;using (StreamReader sr ne…

conda与pip的镜像源与代理设置

conda与pip的镜像源与代理设置 一、前言二、conda镜像源设置2.1conda默认镜像源介绍2.2通过终端设置镜像源2.3通过配置文件设置镜像源 三、pip镜像源设置3.1pip默认镜像源介绍3.2通过终端临时设置镜像源3.3通过配置文件设置一个或多个镜像源 四、conda代理设置4.1通过终端设置代…

数据结构与算法笔记:基础篇 - 栈:如何实现浏览器的前进和后退功能?

概述 浏览器的前进、后退功能&#xff0c;你肯定很熟悉吧&#xff1f; 当依次访问完一串页面 a-b-c 之后&#xff0c;点击浏览器的后退按钮&#xff0c;就可以查看之前浏览过的页面 b 和 a。当后退到页面 a&#xff0c;点击前进按钮&#xff0c;就可以重新查看页面 b 和 c。但…

放开了去的 ulimit

放开了去的 ulimit 放开了去的 ulimitulimit简介临时修改打开文件数目永久修改系统总打开句柄限制更多信息 放开了去的 ulimit ulimit简介 对于高并发或者频繁读写文件的应用程序而言&#xff0c;有时可能需要修改系统能够打开的最多文件句柄数&#xff0c;否则就可能会出现t…

HTTPS 原理技术

HTTPS原理技术 背景简介原理总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本文内容并非完全原创&am…

Element-ui使用上传时弹框选择文件类型

实现效果 1&#xff0c;点击上传&#xff0c;上传文件&#xff1b; 2&#xff0c;选择文件&#xff1b; 3&#xff0c;弹框选择文件类型&#xff1b; 4&#xff0c;选择类型后确定上传&#xff1b; 一&#xff0c;上传 跳过&#xff1b; 二&#xff0c;定义弹框下拉框…

Coolmuster Android Assistant: 手机数据管理的全能助手

在数字化时代&#xff0c;智能手机不仅是通讯工具&#xff0c;更是个人数据的中心。随着数据量的不断增加&#xff0c;如何有效管理和保护这些数据成为了一个重要议题。Coolmuster Android Assistant应运而生&#xff0c;它是一款专为安卓用户设计的综合数据管理软件&#xff0…

EXCEL数据透视图中的日期字段,怎样自动分出年、季度、月的功能?

在excel里&#xff0c;这个果然是有个设置的地方&#xff0c;修改后就好了。 点击文件选项卡&#xff0c;选项&#xff0c;在高级里&#xff0c;将图示选项的勾选给取消&#xff0c;然后再创建数据透视表或透视图&#xff0c;日期就不会自动组合了&#xff1a; 这个选项只对新…

遥感图像的深度学习的任务类型

在遥感图像的深度学习任务中&#xff0c;利用深度学习技术处理和分析遥感图像已经成为一个重要的研究方向。遥感图像来自卫星、无人机等设备&#xff0c;包含了丰富的地球表面信息。以下是遥感图像深度学习中的主要任务类型&#xff1a; 1. 图像分类&#xff08;Image Classif…

Flutter 中的 SliverPrototypeExtentList 小部件:全面指南

Flutter 中的 SliverPrototypeExtentList 小部件&#xff1a;全面指南 Flutter 是一个功能强大的 UI 框架&#xff0c;由 Google 开发&#xff0c;允许开发者使用 Dart 语言构建跨平台的移动、Web 和桌面应用。在 Flutter 的丰富组件库中&#xff0c;SliverPrototypeExtentLis…

山东理工大学第十六届ACM程序设计竞赛(同步赛)

山东理工大学第十六届ACM程序设计竞赛&#xff08;同步赛&#xff09; B、Q的网课 1、创建一个结构体&#xff0c;来保存我们要输入的网课名和学时&#xff0c;并且对学时初始化为-1 2、然后w次输入网课名&#xff0c;对每次输入减去原先网课名对应学时&#xff0c;统计网课剩余…

关于torch.size和tensor的维度笔记

torch.Size([200, 1])和torch.Size([200])的区别是什么? torch.Size([200, 1]) 和 torch.Size([200]) 是两个不同形状的张量 (tensor) 大小。它们的区别如下&#xff1a; torch.Size([200, 1]): 这是一个2D张量&#xff0c;形状是200行1列。这种形状通常用来表示一个列向量或…

suffix-tree教程(个人总结)

背景 在计算机科学和生物信息学中&#xff0c;字符串处理是一个非常重要的领域。无论是搜索引擎、基因序列分析&#xff0c;还是压缩算法&#xff0c;都离不开高效的字符串处理。传统的字符串匹配算法&#xff0c;如暴力搜索、Knuth-Morris-Pratt (KMP) 算法和 Boyer-Moore 算…

Android14 WMS-IWindow介绍

IWindow是很重要的&#xff0c;官方介绍是API back to a client window that the Window Manager uses to inform it of interesting things happening. 也就是说是是用于WMS回调客户端的&#xff0c;当窗口有一些改变时&#xff0c;WMS及时调用客户端接口&#xff0c;让客户端…

Ubuntu22.04之解决:忘记登录密码(二百三十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

gpt-4o api申请开发部署应用:一篇全面的指南

利用 GPT-4o API 开发创新应用&#xff1a;一篇全面的指南 OpenAI 的 GPT-4o 是一款集成了音频、视觉和文本处理能力的多模态人工智能模型&#xff0c;它的出现代表了人工智能领域的重大进步。在本篇文章中&#xff0c;我们将详细介绍如何通过 OpenAI API 使用 GPT-4o&#xf…

html中 table的 colspan和rowspan

Colspan 单元格跨越多列; Rowspan 单元格跨越多行 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> </head> <body><h4>单元格跨两列:</h4> <table border"1"&…

蓝桥杯java组-字符串输入输出处理

题目描述&#xff1a;字符串的输入输出处理。 输入&#xff1a;第一行是一个正整数N&#xff0c;最大为100。之后是多行字符串&#xff08;行数大于N&#xff09;&#xff0c; 每一行字符串可能含有空格&#xff0c;字符数不超过1000。 输出&#xff1a;先将输入中的前N行字符…