在数组中找到至少包含一个数字的子阵具有最大的乘积
2017-03-21 00:00
302 查看
int
maxProduct(int[]
A)
{if
(A.length
== 0)
return
0;
int
maxherepre = A[0];
int
minherepre = A[0];
int
maxsofar = A[0];
int
maxhere, minhere;
for
(int
i = 1;
i < A.length;
i++)
{ maxhere = Math.max(Math.max(maxherepre
* A[i], minherepre * A[i]), A[i]);
minhere = Math.min(Math.min(maxherepre
* A[i], minherepre * A[i]), A[i]);
maxsofar = Math.max(maxhere,
maxsofar);
maxherepre = maxhere;
minherepre = minhere;
}
return
maxsofar;
}
maxProduct(int[]
A)
{if
(A.length
== 0)
return
0;
int
maxherepre = A[0];
int
minherepre = A[0];
int
maxsofar = A[0];
int
maxhere, minhere;
for
(int
i = 1;
i < A.length;
i++)
{ maxhere = Math.max(Math.max(maxherepre
* A[i], minherepre * A[i]), A[i]);
minhere = Math.min(Math.min(maxherepre
* A[i], minherepre * A[i]), A[i]);
maxsofar = Math.max(maxhere,
maxsofar);
maxherepre = maxhere;
minherepre = minhere;
}
return
maxsofar;
}
相关文章推荐
- 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大 java实现
- 在一个数组中找到连续的子数组最大的乘积
- 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大
- 给定一个包含从0,1,2,...,n中取出的n个不同数字的数组,找到数组中缺少的数字。
- 一个数组中同时找到最大/最小值
- 一个有序数组(包含重复的),去除重复的数字然后输出
- 一个能将给定非负整数数组中的数字排列成最大数字的函数
- randnumber_mn.c 生成一个数组,包括k个不重复的整数,并且要求这些整数范围为[m,n),生成的结果中不能包含inum中的数字,size表示inum的长度
- [面试题]在一个先增长后减小的数组中找到最大值
- 转:最小区间:k个有序的数组,找到最小区间使k个数组中每个数组至少有一个数在区间中
- 60. 数组中一个数字出现1次其它数字都出现了3次,如何找到该数字?
- 输入一串字符,只包含“0-10”和“,”,找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数
- 6、 java 输入一个数字组成的数组,输出该数组的最大值和最小值
- 给定只包含正数的数组,给出一个方法,将数组中的数拼接起来,得到的数,是最大的。
- Java编程:定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。
- 一个数组,找出其中具有这样一个特性的数字:1、比它左边的数都大2、比它右边的数都小
- 数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法,找到x。
- 一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。
- 求k个数组包含每个数组至少一个元素的最小范围(待字闺中,备忘)
- [经典面试题][谷歌]一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素