首页 > 其他 > 详细

Maximum Product Subarray

时间:2015-10-24 02:05:53      阅读:274      评论:0      收藏:0      [点我收藏+]

Find the contiguous subarray within an array (containing at least one number) which has the largest product.

For example, given the array?[2,3,-2,4],
the contiguous subarray?[2,3]?has the largest product =?6.

?

public class Solution {
    public int maxProduct(int[] nums) {
        if (nums == null || nums.length == 0) {
        	return 0;
        }
        int max = nums[0];
        int min = nums[0];
        int res = nums[0];
        int maxEnd = 0;
        int minEnd = 0;
        for (int i = 1; i < nums.length; i++) {
        	maxEnd = max * nums[i];
        	minEnd = min * nums[i];
        	max = Math.max(Math.max(maxEnd, minEnd), nums[i]);
        	min = Math.min(Math.min(maxEnd, minEnd), nums[i]);
        	res = Math.max(max, res);
		}
        return res;
    }
}

?

Maximum Product Subarray

原文:http://hcx2013.iteye.com/blog/2251556

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!