题解 | #连续子数组的最大乘积#
连续子数组的最大乘积
https://www.nowcoder.com/practice/abbec6a3779940aab2cc564b22d36859
#include <algorithm>
#include <vector>
class Solution {
public:
//我觉得这题最离谱的是数据量好大
int maxProduct(vector<int>& nums) {
// write code here
int n = nums.size();
int ans = nums[0];
int preMax = nums[0];
int preMin = nums[0];
for(int i = 1; i < n; i++){
int t = preMax;
preMax = max(nums[i] * preMax,max(preMin * nums[i], nums[i]));
preMin = min(nums[i] * t,min(preMin * nums[i], nums[i]));
ans = max(ans, preMax);
}
return ans;
}
};
查看7道真题和解析
华为HUAWEI公司氛围 740人发布