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

泉州做网站优化多少钱免费一键生成app工具

泉州做网站优化多少钱,免费一键生成app工具,免费行情网站app大全,it黑马官网leetcode 300. 最长递增子序列 题目链接:最长递增子序列 dp数组及下标的含义 dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度递推公式 位置i的最长升序子序列等于j从0到i-1各个位置的最长升序子序列 1 的最大值 所以if (nums[i] > nums[j]) dp[i]…

leetcode 300. 最长递增子序列

题目链接:最长递增子序列

  1. dp数组及下标的含义
    dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度
  2. 递推公式
    位置i的最长升序子序列等于j从0到i-1各个位置的最长升序子序列 + 1 的最大值
    所以`if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1)
  3. dp数组初始化`
    每一个i,对应的dp[i](即最长递增子序列)起始大小至少都是1
  4. 遍历顺序
    从前向后遍历
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);}if (dp[i] > result) result = dp[i]; // 取长的子序列
}

整体代码如下:

class Solution {
public:int lengthOfLIS(vector<int>& nums) {if (nums.size() <= 1) return nums.size();vector<int> dp(nums.size(), 1);int result = 0;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);}if (dp[i] > result) result = dp[i]; // 取长的子序列}return result;}
};

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

leetcode 674. 最长连续递增序列

题目链接:最长连续递增序列
本题要求子序列是连续递增,所以只需要比较 nums[i]和 nums[i-1]

class Solution {
public:int findLengthOfLCIS(vector<int>& nums) {if (nums.size() == 0) return 0;int result = 1;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;}
};

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

leetcode 718. 最长重复子数组

题目链接:最长重复子数组

  1. dp数组及下标的含义
    dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]
  2. 确定递推公式
    当A[i - 1] 和B[j - 1]相等的时候,dp[i][j] = dp[i - 1][j - 1] + 1
  3. dp数组初始化
    dp[i][0] 和dp[0][j]初始化为0
  4. 遍历顺序
    外层for循环遍历A,内层for循环遍历B

版本一:二维数组

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 res = 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] > res) res = dp[i][j];}}return res;}
};

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

版本二:滚动数组

dp[i][j]由dp[i - 1][j - 1]推出,压缩为一维数组,dp[j]由dp[j - 1]推出。
遍历B数组的时候,就要从后向前遍历,这样避免重复覆盖

class Solution {
public:int findLength(vector<int>& A, vector<int>& B) {vector<int> dp(vector<int>(B.size() + 1, 0));int res = 0;for (int i = 1; i <= A.size(); i++) {for (int j = B.size(); j > 0; j--) {if (A[i - 1] == B[j - 1]) {dp[j] = dp[j - 1] + 1;} else dp[j] = 0; // 注意这里不相等的时候要有赋0的操作if (dp[j] > res) res = dp[j];}}return res;}
};

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

http://www.yayakq.cn/news/340817/

相关文章:

  • 做五金外贸哪个网站比较好行政机关网站建设的意义
  • 呼市做网站公司导入wordpress
  • 微信网站开发流程上海信息公司做网站
  • wordpress建站动画收费企业邮箱哪家好
  • 网站的内链网站建设创业经历
  • 罗源城乡建设网站网站域名的作用是什么意思
  • 四川建设银行手机银行下载官方网站南京比较大的外贸公司有哪些
  • 哪些网站可以做商家网站的ftp账号密码
  • 宝安做网站公司乐云seo报名入口网站建设
  • 网站建设及维护价钱六安市建设网站市场信息价
  • 网站建设硬件配置怎么设计门户网站
  • 什么网站可以做高三英语试题自主设计网站
  • 该网站正在建设免费装修设计app
  • 苏州新区高端网站制作wordpress如何设置头像
  • 衡水龙腾网站建设网站建设优化服务特色
  • 中英文公司网站马鞍山建设银行网站
  • 哪儿提供邢台做网站重庆网站建设023kw
  • 网站提交百度收录建设网站证书
  • 企业网站在百度搜索不到高端瓶装水品牌
  • 上线一个网站需要多少钱wordpress计算器主题
  • 可以看的网站的浏览器有哪些好看ppt模板免费下载
  • 潍坊尚呈网站建设公司东莞是什么风险等级
  • 扬州网站seowordpress多媒体权限
  • 做网站播放未上映的电影网课编程
  • 网站建设pc端深圳微商城网站制作多少钱
  • 网站如何验收做网站需要懂那些软件
  • wordpress好用插件推荐seo搜索引擎排名优化
  • 网站开发设计素材优秀网站建设出售
  • 东莞营销型网站建设公司泰安建设网
  • 建站宝盒合作长沙建立网站