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

网站架构原理西安防疫今天最新消息

网站架构原理,西安防疫今天最新消息,软件定制开发软件,wordpress贴吧300. 最长递增子序列 1.dp定义:dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度 2.递推公式:if (nums[i] > nums[j]) dp[i] max(dp[i], dp[j] 1); 注意这里不是要dp[i] 与 dp[j] 1进行比较,而是我们要取dp[j] 1的最大值…

300. 最长递增子序列

1.dp定义:dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度

2.递推公式:if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1);

注意这里不是要dp[i] 与 dp[j] + 1进行比较,而是我们要取dp[j] + 1的最大值

 3.初始化:每一个i,对应的dp[i](即最长递增子序列)起始大小至少都是1.

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;}
};

674. 最长连续递增序列

1.dp定义:dp[i]:以下标i为结尾的连续递增的子序列长度为dp[i]

2.递推公式:如果 nums[i] > nums[i - 1],那么以 i 为结尾的连续递增的子序列长度 一定等于 以i - 1为结尾的连续递增的子序列长度 + 1 。

即:dp[i] = dp[i - 1] + 1;

因为本题要求连续递增子序列,所以就只要比较nums[i]与nums[i - 1],而不用去比较nums[j]与nums[i] (j是在0到i之间遍历)。

 3.dp[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;}
};

718. 最长重复子数组

1.dp定义:以下标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;

根据递推公式可以看出,遍历i 和 j 要从1开始!

3.初始化:根据dp[i][j]的定义,dp[i][0] 和dp[0][j]其实都是没有意义的!

但dp[i][0] 和dp[0][j]要初始值,因为 为了方便递归公式dp[i][j] = dp[i - 1][j - 1] + 1;

所以dp[i][0] 和dp[0][j]初始化为0。

举个例子A[0]如果和B[0]相同的话,dp[1][1] = dp[0][0] + 1,只有dp[0][0]初始为0,正好符合递推公式逐步累加起来。

注:如果dp数组以i,j为结尾,那么初始化时,应该为dp[i] = dp[j]时初始化为1

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

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

相关文章:

  • 网站的中英文切换怎么做做论坛网站用什么系统
  • 海南手机网站建设公司投资网
  • 移动网站设计上机考试免费推广链接
  • 网站公司推荐怎么在网站上做音乐
  • 如何自己做淘宝客推广网站网站改版意见
  • 免费做店招哪个网站好网页制作公司找哪家
  • 做一个网站 如何盈利wordpress升级后出错
  • 装饰公司简易手机网站成都网站建设爱特通
  • 沙坪坝做网站阿里云域名查询系统
  • 做网站的开发软件蝙蝠侠大连网络营销
  • 想做个网站怎么做论坛搭建 wordpress
  • 深圳住房和建设局网站 招标代理网约车平台赚钱吗
  • 中国建设银行官网站e路护航360渠道推广系统
  • 建设银行手机银行网站用户名php编程软件
  • 贵港网站设计南通做网站企业
  • 好的产品设计网站网站建设和运营
  • 自适应网站欣赏在湖南建设人力资源网站
  • 购物网站seo关键词定位东莞网络营销外包报价
  • 山东网站建设设计公司网站 移动化
  • 专做阀门网站泉州厦门网站建设公司
  • 安卓app开发需要的技术长春网站优化咨询
  • 2014网站设计趋势wordpress文章删除
  • 六安品牌网站建设电话装修平台排行榜
  • wordpress 点击次数seo排名优化代理
  • jsp网站首页怎么做网站footer怎么做
  • 网站设计理念介绍做品牌网站公司
  • 枣阳城乡建设局网站新闻最新消息
  • 河源市建设规划局网站网络服务顺序
  • 自己做动画网站福建省建设局网站
  • 公司网站建设进度网站引导页面设计