js-practice/src/array/maximum-product-subarray.js

19 lines
435 B
JavaScript

/**
* @param {number[]} nums
* @return {number}
*/
export const maxProduct = function (nums) {
let res = nums[0]
let prevMin = nums[0]
let prevMax = nums[0]
let tmp1 = 0; let tmp2 = 0
for (let i = 1; i < nums.length; i++) {
tmp1 = prevMin * nums[i]
tmp2 = prevMax * nums[i]
prevMin = Math.min(tmp1, tmp2, nums[i])
prevMax = Math.max(tmp1, tmp2, nums[i])
res = Math.max(prevMax, res)
}
return res
}