-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Open
Description
Bug Report for https://neetcode.io/problems/maximum-product-subarray
Please describe the bug below and include any steps to reproduce the bug or screenshots if possible.
There are some important test cases which are not covered on neetcode, but which are present on leetcode:
Input
nums =
[-3,2,-2,1,-1,0,-3,-1]
Output
4
Expected
12
Input
nums =
[-1,0,-2,2]
Use Testcase
Output
0
Expected
2
So when an user passes in a solution like this one, which passes on neetcode, but not on leetcode:
class Solution {
public:
int maxProduct(vector& nums) {
int n = nums.size();
int res = nums[0];
int prefix = 0;
while (prefix < n && nums[prefix] > 0) {
prefix++;
}
int suffix = n - 1;
while (suffix >= 0 && nums[suffix] > 0) {
suffix--;
}
int count_negatives = 0;
for (int i = 0; i < n; i++) {
if (nums[i] < 0) count_negatives++;
}
int temp = 1;
if (count_negatives % 2 == 0) {
for (int i = 0; i < n; i++) {
if (nums[i] == 0) {
res = max(res, 0);
temp = 1;
} else {
temp *= nums[i];
res = max(res, temp);
}
}
} else {
for (int i = prefix + 1; i < n; i++) {
if (nums[i] == 0) {
res = max(res, 0);
temp = 1;
} else {
temp *= nums[i];
res = max(res, temp);
}
}
temp = 1;
for (int i = 0; i < prefix; i++) {
if (nums[i] == 0) {
res = max(res, 0);
temp = 1;
} else {
temp *= nums[i];
res = max(res, temp);
}
}
temp = 1;
for (int i = suffix - 1; i >= 0; i--) {
if (nums[i] == 0) {
res = max(res, 0);
temp = 1;
} else {
temp *= nums[i];
res = max(res, temp);
}
}
temp = 1;
for (int i = suffix + 1; i < n; i++) {
if (nums[i] == 0) {
res = max(res, 0);
temp = 1;
} else {
temp *= nums[i];
res = max(res, temp);
}
}
}
return res;
}
};
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels