題目描述:
題解:仿照最大連續子串行和的思路構造dp。dp_min[i]表示以nums[i]為結尾的子串行的最小乘積、dp_max[i]表示以nums[i]為結尾的子串行的最大乘積。
當nums[i] > 0的時候 dp_max[i] = max(nums[i],nums[i]*dp_max[i-1]); dp_min[i] = min(nums[i],nums[i]*dp_min[i-1]);
當nums[i] < 0 的時候 dp_max[i] = max(nums[i],nums[i]*dp_min[i-1]) (這裡使用dp_min[i-1]是希望dp_min也是乙個負數); dp_min[i] = min(nums[i],nums[i]*dp_max[i-1])(這裡使用dp_max[i-1]是期待負數能更加小);
ac**:
int maxproduct(vector&nums)else
ans =max(ans,dp_max[i]);
}return
ans;
}
Leetcode 152 乘積最大子串行
原題描述 找出乙個序列中乘積最大的連續子串行 該序列至少包含乙個數 例如,給定序列 2,3,2,4 其中乘積最大的子串行為 2,3 其乘積為6。解答 1.暴力搜尋 o n 2 沒有ac 超時 class solution return max 2.動態規劃思想,max min 每有乙個新的數字加入,...
Leetcode 152 乘積最大子串行
給定乙個整數陣列nums,找出乙個序列中乘積最大的連續子串行 該序列至少包含乙個數 示例 1 輸入 2,3,2,4 輸出 6解釋 子陣列 2,3 有最大乘積 6。示例 2 輸入 2,0,1 輸出 0解釋 結果不能為 2,因為 2,1 不是子陣列。這裡用動態規化的方法,即dp i 為以i結尾乘積最大連...
leetcode152 乘積最大子串行
給定乙個整數陣列 nums 找出乙個序列中乘積最大的連續子串行 該序列至少包含乙個數 示例 1 輸入 2,3,2,4 輸出 6 解釋 子陣列 2,3 有最大乘積 6。示例 2 輸入 2,0,1 輸出 0 解釋 結果不能為 2,因為 2,1 不是子陣列。用三個變數分別記錄最大值,到之前乙個數的最大值和...