leetcode(js)-每日一练之 乘积最大子数组 题库编号152
2020-06-04 06:44
501 查看
leetcode(js)-每日一练之 乘积最大子数组
这道题部分思路跟
最大子序和
这道题类似,刚开始做的时候,我觉得先把最大子序和的加号变成乘号试试
var maxProduct = function(nums) { let memo = []; memo[0] = nums[0]; let max = nums[0]; for (let i = 1; i < nums.length; i++) { memo[i] = Math.max(nums[i] * memo[i - 1], nums[i]); max = Math.max(max, memo[i]);; } return max };
会发现不对,想了想是因为,负数成负数会变成超大的一个数,所以决定再用一个数组存最小的数
var maxProduct = function(nums) { const maxProductmemo = []; const minProductmemo = []; maxProductmemo[0] = nums[0]; minProductmemo[0] = nums[0]; let max = nums[0]; for (let i = 1; i < nums.length; i++) { maxProductmemo[i] = Math.max(nums[i], nums[i] * maxProductmemo[i - 1], nums[i] * minProductmemo[i - 1]); minProductmemo[i] = Math.min(nums[i], nums[i] * maxProductmemo[i - 1], nums[i] * minProductmemo[i - 1]); max = Math.max(maxProductmemo[i], max); } return max; };
相关文章推荐
- leetcode(js)-每日一练之 寻找旋转排序数组中的最小值 题库编号153
- 【LeetCode-面试算法经典-Java实现】【152-Maximum Product Subarray(子数组的最大乘积)】
- Leetcode 152 Maximum Product Subarray 子数组最大乘积
- leetcode 152: 最大乘积数组(动态规划)
- 用python写leetcode【6】 --乘积最大子序列(152)、旋转数组(189)
- LeetCode:152_Maximum Product Subarray | 最大乘积连续子数组 | Medium
- 【Leetcode 152】 乘积最大子数组
- leetcode(js)-每日一练之 存在重复元素 题库编号217 219
- leetcode152-Maximum Product Subarray(乘积最大子数组)
- leetcode(js)-每日一练之 打家劫舍 题库编号198
- LeetCode-152:Maximum Product Subarray (乘积最大连续子数组) -- medium
- LeetCode:152_Maximum Product Subarray | 最大乘积连续子数组 | Medium
- 【LeetCode】152. Maximum Product Subarray最大连续子数组乘积
- LeetCode 152. Maximum Product Subarray--连续子数组最大乘积
- 【LeetCode】Maximum Product Subarray 求连续子数组使其乘积最大
- 每日一练-----返回乘积最大的子数组的积
- [LeetCode] 152. Maximum Product Subarray 求最大子数组乘积
- 每日一题算法:2020.05.18乘积最大子数组maxProduct
- LeetCode:152. Maximum Product Subarray Java 子数组最大乘积
- LeetCode-152. Maximum Product Subarray (JAVA)(子数组的最大乘积)