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

莘县做网站重庆seo优

莘县做网站,重庆seo优,政府门户网站建设材料,佛山建设外贸网站公司吗这道题并不是代码随想录里的,我试着用动规五部曲来做,然后不能通过全部测试样例,在第109个测试样例卡住了,如下所示。 原因是可能负数乘以负数会得到最大的乘积,不能单纯地用上一个序列的最大值乘以当前值来判断是否能…


这道题并不是代码随想录里的,我试着用动规五部曲来做,然后不能通过全部测试样例,在第109个测试样例卡住了,如下所示。

原因是可能负数乘以负数会得到最大的乘积,不能单纯地用上一个序列的最大值乘以当前值来判断是否能得到更大值。后来结合了一下灵神的题解,改良了一下动规五部曲,我们同时维护max_multiplymin_multiply两个数组,他们第i个位置上的元素的含义为:以nums[i]结尾的数组中所能取到的最大非空连续子数组乘积为max_multiply[i],以nums[i]结尾的数组中所能取到的最小非空连续子数组乘积为min_multiply[i]。而dp[i]的含义为:以nums[i]为结尾的情况下,所能取到的非空连续子数组的最大乘积。我们可以得到如下4种情况:

  1. max_multiply[i - 1]为正,nums[i]为正 / 0,无论min_multiply[i - 1]为何值,此时dp[i] = max_multiply[i - 1] * nums[i]
  2. max_multiply[i - 1]为负,nums[i]为正 / 0,min_multiply[i - 1]只能为负,此时dp[i] = nums[i]
  3. max_multiply[i - 1]为正,nums[i]为负,无论min_multiply[i - 1]为何值,此时dp[i] = max(nums[i], nums[i] * min_multiply[i - 1])
  4. max_multiply[i - 1]为负,nums[i]为负,min_multiply[i - 1]只能为负,此时dp[i] = nums[i] * min_multiply[i - 1])
    综上,dp[i]一定会在{nums[i], max_multiply[i - 1] * nums[i], min_multiply[i - 1] * nums[i]}中产生,因此我们每一次更新dp[i]时,在三者中取最大值即可。下面给出动规五部曲:
    1.确定dp[i]的含义:以nums[i]为结尾的情况下,所能取到的非空连续子数组的最大乘积
    2.确定递推公式 dp[i] = max_multiply[i];
    3.dp数组初始化 dp[0] = nums[0]
    4.确定遍历顺序:从左往右遍历
    5.打印数组(省略)
    同样,最大乘积不一定是以最后一个元素结尾构成的连续子数组产生的,我们同样用一个变量result来维护最大乘积。
class Solution {
public:int maxProduct(vector<int>& nums) {//1.确定dp[i]的含义:以nums[i]为结尾的情况下,所能取到的非空连续子数组的最大乘积//2.确定递推公式  dp[i] = max(nums[i], nums[i] * dp[i - 1]);//3.dp数组初始化 dp[0] = nums[0]  //4.确定遍历顺序:从左往右遍历//5.打印数组(省略)int n = nums.size();vector<int> dp(n);vector<int> max_multiply(n);vector<int> min_multiply(n);//初始化dp[0] = nums[0];max_multiply[0] = nums[0];min_multiply[0] = nums[0];int result = nums[0];for(int i = 1; i < n; i++){// for(int j = 0; j < i; j++){max_multiply[i] = max({nums[i], nums[i] * max_multiply[i - 1], nums[i] * min_multiply[i - 1]});min_multiply[i] = min({nums[i], nums[i] * max_multiply[i - 1], nums[i] * min_multiply[i - 1]});dp[i] = max_multiply[i];result = max(result, dp[i]);}return result;}
};
http://www.dtcms.com/wzjs/529459.html

相关文章:

  • 国际公司英语翻译百度seo哪家公司好
  • 最新的网站开发技术如何优化
  • 个人网站架设小程序推广接单平台
  • 珠海网站建设培训郑州最新通告
  • 产品包装设计公司网站竞价排名什么意思
  • 网站开发用框架开发的优缺点国内外搜索引擎大全
  • 商家在携程旅游网站怎样做宣传群发软件
  • 武汉有个网站叫什么推销产品的万能句子
  • 电脑做网站seo的五个步骤
  • wordperss网站做负载均衡怎么优化一个网站关键词
  • 中国建设劳动学会官方网站是多少网页制作网站
  • 适合大学生做兼职的网站有哪些网店如何推广
  • 成都摄影网站建设怎么在百度上做推广
  • 西城网站制作公司营销策划培训
  • 老司机做爰网站老师影音杭州网站优化公司
  • idc 网站备案限制驻马店网站seo
  • 广东网站优化网络推广的方法和技巧
  • 卫浴洁具网站模板互联网营销策划
  • 山东泰安区号关键词排名优化教程
  • 长春最新通告11月2日起杭州网络推广网络优化
  • 成人大专咨询贵州seo学校
  • wordpress回复经典编辑器无锡seo公司找哪家好
  • 东莞免费做网站网上宣传方法有哪些
  • wordpress个人网站赚钱合肥做网站公司哪家好
  • 为什么很少用python做网站目前最好的引流推广方法
  • 做网站的英文编辑网络营销有哪些推广方法
  • 玄武区网站建设b2b电子商务平台
  • wordpress 菜单 链接目标江门seo网站推广
  • win2012做网站登封搜索引擎优化
  • 在哪个网站上做兼职比较好推广软件平台