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

莱芜哪里做网站手机百度最新正版下载

莱芜哪里做网站,手机百度最新正版下载,wordpress大学教程课件,夜间网址你会回来感谢我的注:Day51休息。 本文目录 300.最长递增子序列做题看文章 674. 最长连续递增序列做题看文章 718. 最长重复子数组做题看文章 以往忽略的知识点小结个人体会 300.最长递增子序列 代码随想录:300.最长递增子序列 Leetcode:300.最长递增子序列 …

注:Day51休息。

本文目录

  • 300.最长递增子序列
    • 做题
    • 看文章
  • 674. 最长连续递增序列
    • 做题
    • 看文章
  • 718. 最长重复子数组
    • 做题
    • 看文章
  • 以往忽略的知识点小结
  • 个人体会

300.最长递增子序列

代码随想录:300.最长递增子序列
Leetcode:300.最长递增子序列

做题

无思路。

看文章

动规五部曲:

  1. dp[i]的定义。dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度。
  2. 状态转移方程。if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1)。
  3. dp[i]的初始化。至少为1。
  4. 确定遍历顺序。遍历i的循环在外层,遍历j则在内层。
  5. 举例推导dp数组。

看完思路后自己实现。这里有个特殊点,最后要return max(dp),因为dp数组代表的是以 nums[i] 为结尾的最长递增子序列的长度,故需要返回最大值。

class Solution:def lengthOfLIS(self, nums: List[int]) -> int:size = len(nums)dp = [1] * sizefor i in range(size):for j in range(i):if nums[i] > nums[j]:dp[i] = max(dp[i], dp[j] + 1)return max(dp)

时间复杂度: O(n^2)
空间复杂度: O(n)

674. 最长连续递增序列

代码随想录:674. 最长连续递增序列
Leetcode:674. 最长连续递增序列

做题

无思路。

看文章

动规五部曲:

  1. dp[i]的定义。dp[i]:以下标i为结尾的连续递增的子序列长度为dp[i]。
  2. 状态转移方程。如果 nums[i] > nums[i - 1],那么以 i 为结尾的连续递增的子序列长度 一定等于 以i - 1为结尾的连续递增的子序列长度 + 1 。即:dp[i] = dp[i - 1] + 1。
  3. dp[i]的初始化。至少为1。
  4. 确定遍历顺序。从前往后,单层遍历
  5. 举例推导dp数组。
class Solution:def findLengthOfLCIS(self, nums: List[int]) -> int:size = len(nums)if size == 1:return 1dp = [1] * sizefor i in range(1, size):if nums[i] > nums[i-1]:dp[i] = dp[i-1] + 1return max(dp)

时间复杂度:O(n)
空间复杂度:O(n)

718. 最长重复子数组

代码随想录:718. 最长重复子数组
Leetcode:718. 最长重复子数组

做题

无思路。

看文章

动规五部曲:

  1. dp数组的定义。dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。(i-1是为了方便初始化)
  2. 状态转移方程。根据dp[i][j]的定义,dp[i][j]的状态只能由dp[i - 1][j - 1]推导出来,即当A[i - 1] 和B[j - 1]相等的时候,dp[i][j] = dp[i - 1][j - 1] + 1。根据递推公式可以看出,遍历 i 和 j 要从1开始!
  3. dp[i]的初始化。dp[i][0] 和dp[0][j]初始化为0。
  4. 确定遍历顺序。
  5. 举例推导dp数组。
class Solution:def findLength(self, nums1: List[int], nums2: List[int]) -> int:dp = [[0] * (len(nums2)+1) for _ in range(len(nums1)+1)]res = 0for 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

时间复杂度:O(n × m),n 为A长度,m为B长度
空间复杂度:O(n × m)

以往忽略的知识点小结

  • 子序列的dp数组定义:以 i 结尾的最长xxx子序列

个人体会

完成时间:1h50min。
心得:新题型,用动态规划处理子序列问题。

http://www.ritt.cn/news/15412.html

相关文章:

  • 做一个app成本网站seo专员
  • 网站icp备案申请怎么在百度上推广
  • 网站后台代码如何做制作网站教学
  • 合肥百度 网站建设百度网站推广
  • 腾讯云网站建设的步骤过程百度手机网页
  • 做微信网站支付需要什么信息表网络营销课程实训总结
  • 别人不能注册我的wordpress站精准的搜索引擎优化
  • 上海云职企业服务是干什么的seo查询源码
  • 北京专业网站制作服务标准巩义网站优化公司
  • 建站之星多语言杭州seo技术
  • 景点网站应该怎么做百度客户端
  • 企业微信会话内容存档北京seo结算
  • 新疆自治区住房和城乡建设厅网站电商网站分析
  • 移动网站开发 王府井一站式网络营销
  • 比较漂亮的营销型网站典型的网络营销案例
  • 天津网站建设优化企业百度的代理商有哪些
  • 交易类网站seo怎么做在哪个网站可以免费做广告
  • 如何学做网站百度网站优化工具
  • 济南营销网站制作公司哪家好百度快照推广
  • 做个网站的价格aso优化的主要内容为
  • 安亭做网站公司网站引流推广
  • 中国商标网官方查询网站百度搜索推广多少钱
  • 厦门seo优化公司泉州seo托管
  • 外国高端网站竞价托管哪家效果好
  • 旅游网站制作视频百度云百度云手机app下载
  • 可以把网站生成软件鲜花网络营销推广方案
  • 网站开发完成如何上线网站测速工具
  • python做网站吗app引流推广软件
  • 怎样在谷歌做网站台州seo
  • 和动物做的网站吗域名查询备案