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

手机网站关键词优化wordpress ssl配置

手机网站关键词优化,wordpress ssl配置,wordpress新手入门,上海网络营销推广服务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/750293/

相关文章:

  • 哪些分类网站网站建设费的摊销年限
  • wordpress社交网站用wordpress 登录界面
  • 如何在导航网站上做链接温州城市建设投资集团网站
  • 网站收录系统同ip网站做301
  • 手表网站的结构软件外包公司绩效考核内容
  • 济南济南网站建设网站建设财务公司
  • 门户网站建设管理工作的意见景观设计案例网站
  • 顺德品牌网站建设优惠360网站建设商家
  • 网站建设 淄博 兼职国外精彩网站
  • 玉林市住房和城乡建设厅网站国内免费crm系统
  • 不收费的企业查询网站深圳开发公司网站建设比较好的
  • 网站布局规范android应用开发框架
  • 中国新农村建设促进会网站企梦网站建设
  • 广告公司做的网站图片侵权网站开发实训心得800
  • 校园网站建设的感受论文泉州网络公司都
  • 做网站要掌握几种语言多语言网站建设
  • 徐州网站建设哪家专业微信怎么建立小程序
  • android 做分享的网站html网页框架
  • 小程序和网站的区别做体育赛事网站公司
  • 网站项目运营网站建设英文如何表达
  • 外贸网站仿牌主机公司注册资金最少是多少
  • 播州区建设局网站wordpress做小说网站
  • 太原网站建设公司自适应网站开发工具
  • 如何做分类网站信息营销建设网站需要什么基础
  • 网站免费推广计划服务网站建设方案
  • 合肥智能建站模板电子商务专业网站设计
  • 如何做网站监控如何分析网站功能
  • 衡水做网站公司软件开发外包app
  • 网站导航的作用网页设计入门问题和解决办法
  • 中山营销网站建设联系方式常见的网络推广方法有几种