/**
* @param {number[]} nums
* @return {number}
*/
var maxProduct = function(nums) {
let arr = []; // 存放所有连续子数组的乘积
// nums是否包含有0, 说明乘积肯定有0
if( nums.includes(0) ){
arr.push(0);
}
for( let i = 0; i < nums.length; i ++ ){
if( nums[i] == 0 ){
continue;
}
for( let j = i; j < nums.length; j ++ ){
if( nums[j] == 0 ){
break;
}
let product = 1;
// 连续子数组的乘积
for( let k = i; k <= j; k ++ ){
product *= nums[k];
} // for k
arr.push(product);
} // for j
} // for i
arr.sort((a, b)=>b-a); // 从大到小排序
return arr[0];
};
老师,这道题目面试的时候我碰上了,我给出了如上的穷举法,起码是通过了考查。但是在leetcode的用例规模下,超时了,我有看您的答案,只是用了一遍for循环就好了,没看太懂。。。。
登录后可查看更多问答,登录/注册