int maxProduct(vector<int>& nums) {
int best = nums[0];
for (int i = 0; i < (int)nums.size(); i++) {
for (int j = i; j < (int)nums.size(); j++) {
int product = 1;
for (int k = i; k <= j; k++) product *= nums[k];
best = max(best, product);
}
}
return best;
}
public int maxProduct(int[] nums) {
int best = nums[0];
for (int i = 0; i < nums.length; i++) {
for (int j = i; j < nums.length; j++) {
int product = 1;
for (int k = i; k <= j; k++) product *= nums[k];
best = Math.max(best, product);
}
}
return best;
}
def max_product(nums):
best = nums[0]
for i in range(len(nums)):
for j in range(i, len(nums)):
product = 1
for k in range(i, j + 1): product *= nums[k]
best = max(best, product)
return best
function maxProduct(nums: number[]): number {
let best = nums[0];
for (let i = 0; i < nums.length; i++) {
for (let j = i; j < nums.length; j++) {
let product = 1;
for (let k = i; k <= j; k++) product *= nums[k];
best = Math.max(best, product);
}
}
return best;
}
int maxProduct(vector<int>& nums) {
int best = nums[0];
for (int i = 0; i < (int)nums.size(); i++) {
int product = 1;
for (int j = i; j < (int)nums.size(); j++) {
product *= nums[j];
best = max(best, product);
}
}
return best;
}
public int maxProduct(int[] nums) {
int best = nums[0];
for (int i = 0; i < nums.length; i++) {
int product = 1;
for (int j = i; j < nums.length; j++) {
product *= nums[j];
best = Math.max(best, product);
}
}
return best;
}
def max_product(nums):
best = nums[0]
for i in range(len(nums)):
product = 1
for j in range(i, len(nums)):
product *= nums[j]
best = max(best, product)
return best
function maxProduct(nums: number[]): number {
let best = nums[0];
for (let i = 0; i < nums.length; i++) {
let product = 1;
for (let j = i; j < nums.length; j++) {
product *= nums[j];
best = Math.max(best, product);
}
}
return best;
}
int maxProduct(vector<int>& nums) {
int curMax = nums[0], curMin = nums[0], best = nums[0];
for (int i = 1; i < (int)nums.size(); i++) {
int x = nums[i];
int a = curMax * x, b = curMin * x;
curMax = max({x, a, b});
curMin = min({x, a, b});
best = max(best, curMax);
}
return best;
}
public int maxProduct(int[] nums) {
int curMax = nums[0], curMin = nums[0], best = nums[0];
for (int i = 1; i < nums.length; i++) {
int x = nums[i];
int a = curMax * x, b = curMin * x;
curMax = Math.max(x, Math.max(a, b));
curMin = Math.min(x, Math.min(a, b));
best = Math.max(best, curMax);
}
return best;
}
def max_product(nums):
cur_max = cur_min = best = nums[0]
for i in range(1, len(nums)):
x = nums[i]
a, b = cur_max * x, cur_min * x
cur_max = max(x, a, b)
cur_min = min(x, a, b)
best = max(best, cur_max)
return best
function maxProduct(nums: number[]): number {
let curMax = nums[0], curMin = nums[0], best = nums[0];
for (let i = 1; i < nums.length; i++) {
const x = nums[i];
const a = curMax * x, b = curMin * x;
curMax = Math.max(x, a, b);
curMin = Math.min(x, a, b);
best = Math.max(best, curMax);
}
return best;
}
int maxProduct(vector<int>& nums) {
int best = nums[0], prefix = 1, suffix = 1;
int n = nums.size();
for (int i = 0; i < n; i++) {
prefix = (prefix == 0 ? 1 : prefix) * nums[i];
suffix = (suffix == 0 ? 1 : suffix) * nums[n - 1 - i];
best = max({best, prefix, suffix});
}
return best;
}
public int maxProduct(int[] nums) {
int best = nums[0], prefix = 1, suffix = 1;
int n = nums.length;
for (int i = 0; i < n; i++) {
prefix = (prefix == 0 ? 1 : prefix) * nums[i];
suffix = (suffix == 0 ? 1 : suffix) * nums[n - 1 - i];
best = Math.max(best, Math.max(prefix, suffix));
}
return best;
}
def max_product(nums):
best, prefix, suffix = nums[0], 1, 1
n = len(nums)
for i in range(n):
prefix = (1 if prefix == 0 else prefix) * nums[i]
suffix = (1 if suffix == 0 else suffix) * nums[n - 1 - i]
best = max(best, prefix, suffix)
return best
function maxProduct(nums: number[]): number {
let best = nums[0], prefix = 1, suffix = 1;
const n = nums.length;
for (let i = 0; i < n; i++) {
prefix = (prefix === 0 ? 1 : prefix) * nums[i];
suffix = (suffix === 0 ? 1 : suffix) * nums[n - 1 - i];
best = Math.max(best, prefix, suffix);
}
return best;
}