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

重庆秀山网站建设报价网站建设外出考察信息

重庆秀山网站建设报价,网站建设外出考察信息,宁夏正丰建设集团公司联网站,宁波seo外包优化公司1.题目解析 题目来源:1567.乘积为正数的最长子数组——力扣 测试用例 2.算法原理 1.状态表示 因为数组中存在正数与负数,如果求乘积为正数的最长子数组,那么存在两种情况使得乘积为正数,第一种就是正数乘以正数,第…

1.题目解析 

题目来源:1567.乘积为正数的最长子数组——力扣 

测试用例 

2.算法原理

1.状态表示

因为数组中存在正数与负数,如果求乘积为正数的最长子数组,那么存在两种情况使得乘积为正数,第一种就是正数乘以正数,第二种就是负数乘以负数,那么就必须使用两个表来分别存储这两种情况,其中f表存储乘积为正数的子数组最长长度,g表存储乘积为负数的子数组最长长度

f[i]:以第i个位置为结尾的乘积为正数的子数组最长长度

g[i]:以第i个位置为结尾的乘积为负数的子数组最长长度

2.状态转移方程

当遇到的为正数,此时填两个表需要分别用到自己表的前一个位置的值,也就是

f[i]=f[i-1]+1;g[i]=g[i-1]==0?0:g[i-1]+1;这里特殊处理g表是因为当第i个位置之前乘积全为正数时g[i-1]=0,如果此时直接g[i]=g[i-1]+1则不符合实际情况

当遇到的为负数,此时填两个表需要用到对方表内的前一个位置的值,也就是

f[i]=g[i-1]==0?0:g[i-1]+1;g[i]=f[i-1]+1;这里以及特殊处理g[i-1]避免错误

3.初始化

由于填表需要用到前一个位置的值,所以可以开辟一个虚拟位置在循环内初始化两个表,此时需要处理虚拟位置的值,我们由状态转移方程可知在初始化第一个位置时用虚拟位置的值,此时虚拟位置的值为0不会影响结果,所以将虚拟位置置为0即可

4.填表顺序

从左到右,两个表一起填写

5.返回值

返回f表的最大值即可

3.实战代码

class Solution {
public:int getMaxLen(vector<int>& nums) {int n = nums.size();vector<int> f(n+1);vector<int> g(n+1);int ret = INT_MIN;for(int i = 1;i <= n;i++){if(nums[i-1] > 0){f[i] = f[i-1] + 1;g[i] = g[i-1] == 0 ? 0 : g[i-1] + 1;}if(nums[i-1] < 0){f[i] = g[i-1] == 0 ? 0 : g[i-1] + 1;g[i] = f[i-1] + 1;}ret = max(f[i],ret);}    return ret;}
};
http://www.sczhlp.com/news/89242/

相关文章:

  • 静态网站可以做哪些网站建设与维护是什么
  • 南昌市建设网站西安做效果图的公司
  • 德州公司做网站企业招聘网站大全免费
  • 大连市网站制作电话购买域名和服务器
  • 带数据库的网站模板国产免费erp软件
  • 饰品电子商务网站的建设wordpress 个人简介 换行
  • 怎么做帖子网站开发app需要哪些费用
  • RST报文段的意义
  • 做响应式网站所用的代码百度服务商平台
  • 网站自适应是什么做的北京企业网站建设推荐
  • 沈阳网站推广¥做下拉去118cr厦门网站建设工作
  • 在线网站建设哪个正规wordpress pdf缩略图
  • 怎么用dw制作网站荆门市网站建设
  • 唐山哪家做网站好中国十大软件公司
  • 上海网站建设价位漳州电脑网站建设
  • 求个没封的w站2022郑州网站建设公司代运营
  • 南京网站建设公司有哪些wordpress 管理员头像
  • 网站关键词排名全掉了郓城县建设局网站
  • 龙岩市城乡建设局网站进不去怎么写公司网站的文案
  • 论医院网站的建设绵阳公司网站制作公司
  • 仪器仪表网站制作网店运营管理与营销推广
  • 松岗网站的建设高端网站设计需求有哪些
  • 个人接app推广单去哪里接淄博搜索引擎优化
  • 商城网站系统建设方案专业seo优化推广
  • 青海格尔木建设局网站西峡微网站开发
  • 做ar的网站网站开发工程师大学
  • 厦门市建设路网站网站设计要点
  • 自己怎做网站wordpress验证码代码
  • 六安网站制作哪里有php创建网页
  • 在线购物网站模板参考网是正规网站吗