152. Maximum Product Subarray
Tags:
Medium
Skills:
Prefix Sum
June 24, 2025
04:32 AM
No headings found
Loading content...
Related Posts
Leetcode
No headings found
Related Posts
Leetcode
Problem
Bài toán yêu cầu tìm tích lớn nhất của một dãy con liên tiếp một dãy con liên tiếp trong mảng số nguyên. Điểm khó là mảng có thể chứa số âm và số 0, nên không thể chỉ dùng tích liên tục như bài Maximum Subarray (tổng lớn nhất).
Approach
Solution
1function maxProduct(nums: number[]): number {
2 let maxProd = nums[0];
3 let minProd = nums[0];
4 let ans = nums[0];
5 for(let i = 1; i < nums.length; i++) {
6 const temp_max = maxProd;
7 const temp_min = minProd;
8
9 maxProd = Math.max(nums[i], temp_max * nums[i], temp_min * nums[i]);
10 minProd = Math.min(nums[i], temp_max * nums[i], temp_min * nums[i]);
11 ans = Math.max(ans, maxProd)
12 }
13
14 return ans;
15};