给定一个整数数组 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) { if (nums == null || nums.length == 0) return 0; else if (nums.length == 1) return nums[0]; int max = 1; int min = 1; int result = nums[0]; for (int i : nums) { int big = max * i > min * i ? max * i : min * i; int small = (max * i) ^ (min * i) ^ big; max = i > big ? i : big; min = i < small ? i : small; result = result > max ? result : max; } return result; }}