class Solution { public: /** * Note: 类名、方法名、参数名已经指定,请勿修改 * * * 找到数组中乘积最大的连续子数组,并返回乘积 * @param nums long长整型 vector 原始数组 * @return long长整型 */ long long GetSubArrayMaxProduct(vector<long> &;nums) { // write code here int numsLen = nums.size(); long long mx, mi; mx = 1; mi = 0; long long res = INT64_MIN; for (int i = 0; i < numsLen; ++i) { if (nums[i] > 0) { mx = mx * nums[i]; mi = mi * nums[i]; } else if (nums[i] < 0) { if (mi == 0) { mi = nums[i] * mx; mx = 1; } else { mx = mi * nums[i]; mi = mx * nums[i]; } } else { mx = 1; mi = 0; } res = max(mx, res); } return res; } };
点赞 评论

相关推荐

牛客网
牛客企业服务