力扣算法刷题Day52|动态规划:最长递增子序列 最长连续递增序列 最长重复子数组

news/2024/11/24 2:06:58/

力扣题目:#300.最长递增子序列

刷题时长:参考题解后5min

解题方法:动态规划

复杂度分析

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

问题总结

  • 难点在于如何定义dp[i],由哪些状态可以推出来,并取最大值

本题收获

  • 动规思路
    • 确定dp数组及下标的含义:dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度
    • 确定递推公式: if nums[i] > nums[j]: dp[i] = max(dp[i], dp[j] + 1)
    • dp数组的初始化:dp[i] =1
    • 确定遍历顺序:正序

力扣题目:#674. 最长连续递增序列

刷题时长:参考题解后2min

解题方法:动态规划

复杂度分析

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

问题总结

  • 区别于上题,此题要求连续

本题收获

  • 动规思路
    • 确定dp数组及下标的含义:以下标i为结尾的连续递增的子序列长度为dp[i]
    • 确定递推公式:if nums[i] > nums[i - 1]: dp[i] = dp[i - 1] + 1
    • dp数组的初始化:dp[0] = 1
    • 确定遍历顺序:正序

力扣题目:#718. 最长重复子数组

刷题时长:参考题解后8min

解题方法:动态规划

复杂度分析

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

问题总结

  • 难点在如何巧妙定义dp[i][j],遍历dp[i][j]的时候i 和 j都要从1开始
  • 写码问题出在二维行列数与for循环的对应
  • 边界值

本题收获

  • 动规思路
    • 确定dp数组及下标的含义:dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]
    • 确定递推公式:if A[i - 1] = B[j - 1]: dp[i][j] = dp[i - 1][j - 1] + 1
    • dp数组的初始化:dp[i][0] 和dp[0][j]没有意义,初始化为0
    • 确定遍历顺序:正序

http://www.ppmy.cn/news/701423.html

相关文章

手机运行慢可以刷机吗_一加1手机A0001系统运行速度变慢变卡顿了_如何进行刷机教程操作...

一加1手机,也就是一加A0001,也有叫OnePlus1的,其实都是一款手机,今天要说的是这个手机系统运行速度变慢变卡顿的问题,因为手机变慢变卡顿之后会直接影响手机的使用体验,有的要可能会放弃这个手机了&#xf…

C语言进阶---动态内存管理

1、为什么存在动态内存分配? 我们已经掌握的内存开辟方式有: int a 20; //在栈空间上开辟四个字节。 char arr[20]; //在栈空间上开辟10个字节的连续空间。但是上述的开辟空间的方式有两个特点: 开辟空间大小是固定的数组在申…

ubuntu下安卓刷机教程和scrcpy无线控制手机

由于手头有个闲置的安卓手机,平时一般固定在手机支架上(如下图),当做时钟、闹钟还有树莓派远程桌面,偶尔也拿来看看视频,但是每次拿上拿下太麻烦了。突然想到能不能用电脑来控制手机,这样就方便…

android手机无分区无法刷机,adb sideload 刷机教程:当你手机无法开机,内存里没有ROM时......

本帖最后由 木力曾 于 2015-11-24 11:26 编辑 adb sideload刷机教程 当你手机无法开机,内存里没有ROM时的解决方法(根据网上教程自己整理了下) 这个教程很简单,大神可以路过。遇到手机突然无法开机,但是内存里又没可以卡刷的ROM时。 如果这样你就可以通过 adb sideload 的刷…

三星a7108android 7.0,三星A7108刷机教程_三星A7108线刷官方系统包_可救砖用

来说说咱们的三星A7108手机的线刷教程,这个线刷教程在三星手机手机中没什么稀奇的,因为这个线刷的教程主咱们的官方的rom包标配的教程了,之前有很多机友还不知道如何进行线刷操作,所以下面整理了一下详细的线刷教程供大家参考了&a…

Map和Set详解

Map和Set详解 一.引言二.搜索树2.1 概念2.2二叉搜索树基本操作2.3 操作-查找2.4 操作-插入2.5 操作-删除2.6 性能分析 三. Map和set简介四.Map接口和实现类4.1 HashMap的api4.2 TreeMap的api 五.Set接口和实现类5.1HashSet常用的Api5.2 TreeSet的常用api 六.哈希表的概念6.1 概…

前端去除浏览器账号密码提示

在输入框前加上代码&#xff1a; <input type"password" name"oldPwdInput" placeholder"" maxlength"20" autocomplete"off" style"position: fixed;top:-1000px"> <input style"display:none&qu…

彻底解决不要脸的360更改浏览器主页【转载】

1.IE浏览器/工具/internet选项 把主页更改了&#xff08;基本没用&#xff09; 2.右键浏览器图标/属性/快捷方式/目标 看看是不是在.exe后面有没有指向360的目标&#xff0c;有的话删掉。如果不能更改的话&#xff0c;将文件的只读属性勾选掉 3.如果还是不行&#xff0…