[리트코드] 152. Maximum Product Subarray
152. Maximum Product Subarray
나의 풀이
/**
* @param {number[]} nums
* @return {number}
*/
var maxProduct = function (nums) {
if (!nums.length) return 0;
let maxSoFar = nums[0];
let minSoFar = nums[0];
let result = maxSoFar;
for (let i = 1; i < nums.length; i++) {
let curr = nums[i];
let max = Math.max(curr, Math.max(maxSoFar * curr, minSoFar * curr));
minSoFar = Math.min(curr, Math.min(maxSoFar * curr, minSoFar * curr));
maxSoFar = max;
result = Math.max(result, max);
}
return result;
};
console.log(maxProduct([-4, -3, -2]));
음수일 때 계산을 위해 최솟값도 가져가야 한다.