苏州做网站0512jinyan,招标网免费,网站维护的过程及方法,vr成品网站源码在线观看牛客题霸 [子数组最大乘积] C题解/答案
题目描述
给定一个double类型的数组arr#xff0c;其中的元素可正可负可0#xff0c;返回子数组累乘的最大乘积。
题解#xff1a;
同时记录最大值和最小值#xff0c;为什么?因为给的元素是存在负数的#xff0c;当出现负数时…牛客题霸 [子数组最大乘积] C题解/答案
题目描述
给定一个double类型的数组arr其中的元素可正可负可0返回子数组累乘的最大乘积。
题解
同时记录最大值和最小值为什么?因为给的元素是存在负数的当出现负数时最大值会变成最小值而最小值也会翻身成最大值所以要同时记录每次最最大情况
代码
class Solution {
public:double maxProduct(vectordouble arr) {double ansmin 1,ansmax 1;double result arr[0];for (int i 0; i arr.size() ; i) {if (arr[i] 0)swap(ansmin,ansmax);ansmin min(ansmin * arr[i],arr[i]);ansmax max(ansmax * arr[i],arr[i]);result max(result,ansmax);}return result;}
};