程式語言 - LeetCode - C++ - 152. Maximum Product Subarray



題目:


解答:

class Solution {
public:
    int maxProduct(vector<int>& nums) {
        int max_val = nums[0];
        int min_val = nums[0];
        int ans = nums[0];

        for (int i = 1; i < nums.size(); ++i) {
            int t = max_val;
            int n = nums[i];

            max_val = max({n, max_val * n, min_val * n});
            min_val = min({n, t * n, min_val * n});
            ans = max(max_val, ans);
        }

        return ans;
    }
};