19 lines
435 B
JavaScript
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
|
|
}
|