乘积最大子数组

03-25 4214阅读 0评论

链接

乘积最大子数组 第1张
(图片来源网络,侵删)

152. 乘积最大子数组 - 力扣(LeetCode)

这个题目里面的数字是含有负数的,我们就要考虑到这一点,因为负负得正,当一个最小值(极有可能是负数)乘以一个负数,那么这个就变成了最大值。

我们需要用到动态规范来做这道题,因为题目要求是说连续的,我们分成俩个数组,一个dpmax记录这个位置的连续乘积最大子数组的值,一个dpmin记录经过这个位置最小子数组的值(为了防止后面有一个负数来使得它变大),所以当前 最大值就有三种情况,nums[i]  dpmax[i-1]*nums[i]  dpmin[i-1]*nums[i]  在这三个里面去寻找最大的,同时需要更新 dpmax 和 dpmin 数组

代码如下:

#define MIN -2147483647
#define MAX 2147483648
int max(int a,int b)
{
	if(a>b) return a;
	return b;
}
int min(int a,int b)
{
	if(a>b) return b;
	return a;
}
int maxProduct(int* nums, int numsSize) 
{
	int res=MIN;
    if(numsSize==1) return nums[0];
    if(numsSize

免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,4214人围观)

还没有评论,来说两句吧...

目录[+]