继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

找出数组中的连续最大乘积

kala16
关注TA
已关注
手记 260
粉丝 18
获赞 134

    给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。

示例 1:

输入: [2,3,-2,4]
输出: 6
解释: 子数组 [2,3] 有最大乘积 6。
示例 2:

输入: [-2,0,-1]
输出: 0
解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。
分析:
由于是连续序列,又是数组,所以,用循环可能最简单了,这里需要注意的是,不要忘记单个数组元素值。通过第一层循环去记录单个数组元素的值,而第二层则,考虑乘积的问题,和最大值判断的问题。

class Solution {    public int maxProduct(int[] nums) {        int fmax1, fmax2;        fmax2 = nums[0];            for(int i=0; i<=nums.length-1; i++){            fmax1 = nums[i];            for(int j=i; j<=nums.length-1; j++){                if(j > i){                    fmax1 *= nums[j];                }                if(fmax2 < fmax1){                    fmax2 = fmax1;                }            }        }         return fmax2;    }}

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP