博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode-Maximum Product Subarray-最大乘积子数组-情况判断
阅读量:4312 次
发布时间:2019-06-06

本文共 716 字,大约阅读时间需要 2 分钟。

https://oj.leetcode.com/problems/maximum-product-subarray/

题目非常简单,就是要AC代码量不小,需要保证一次性正确率很难。

考虑一个数组最大乘积可能的几种情况:

1)0,数组中有0,且其他部分都乘积比0小。这种情况可以把问题分解成一系列0隔开的子数组的最大乘积,再考虑上0.

2)非零,数组中有偶数个负数,则全乘起来比较大。

3)非零,数组中有奇数个负数,这时最大乘积有两种情况:最左边的负数+1到最右边,最左边到最右边负数-1。

其实可以不使用递归,就手动扫描分割出不含0的子数组。

class Solution {public:	int m,n;	vector 
A; int Solve(int p,int q){ int l=p,r; int res=numeric_limits
::min(); for (int i=p;i
=1){ int ln=1; for (int i=p;i
=1){ int rn=1; for (int i=l+1;i
A=vector
(A,A+n); this->n=n; return Solve(0,n); }};

  

转载于:https://www.cnblogs.com/yangsc/p/4005014.html

你可能感兴趣的文章
hdu 2049 不容易系列之考新郎 && 对错排的详解
查看>>
10个面向程序员的在线编程网站
查看>>
c#设计模式-单例模式(面试题)
查看>>
WPF x名称空间详解
查看>>
pyenv管理多python版本
查看>>
mysql 存储过程和触发器综合例题
查看>>
深度的发现之256个class打平1个id
查看>>
0909我对编译原理的见解
查看>>
lib 和 dll
查看>>
hdu 2042 - 不容易系列之二
查看>>
Linux下设置postgresql数据库开机启动
查看>>
mysql函数技巧整理
查看>>
二叉树
查看>>
IO多路复用--epoll详解
查看>>
[线段树优化应用] 数星星Star
查看>>
表单序列化以及后台表单数据参数的提取
查看>>
SQL语句(十五)视图
查看>>
nginx 设置开机启动
查看>>
继承和组合
查看>>
小程序-----上传图片
查看>>