作者DJYOMIYAHINA (通通打死)
看板Marginalman
標題[閒聊] 152. Maximum Product Subarray
時間Mon Aug 12 23:32:16 2024
今天複習以前的
幹發現這個怎麼加了一個test case==
[0,10,10,10,10,10,10,10,10,10,-10,10,10,10,10,10,10,10,10,10,0]
以前寫的都會overflow
剛剛是直接用python嚕過去了
但看解答C++好像可以直接用double== 點點點
int maxProduct(vector<int>& nums) {
double dp_neg = 1;
double dp_pos = 1;
double ans = -DBL_MAX;
for(auto n : nums) {
double tmp_neg = dp_neg * n;
double tmp_pos = dp_pos * n;
ans = max({ans, (double)n, tmp_neg, tmp_pos});
dp_neg = min({1.0, (double)n, tmp_neg, tmp_pos});
dp_pos = max({1.0, (double)n, tmp_neg, tmp_pos});
}
return (int)ans;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.229.37.69 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1723476738.A.16E.html
推 Smallsh: 大師 08/12 23:34
→ digua: 大師 08/12 23:36