【Leetcode 152】 乘积最大子数组
2020-04-20 18:43
204 查看
问题描述
给你一个整数数组
nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字)。
[code]输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。
[code]输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。
参考实现
[code]class Solution { public: int maxProduct(vector<int>& nums) { int length = nums.size(); if( length == 0 ) return 0; int maxi = nums[0], mini = nums[0]; int sum = nums[0]; for(int i=1; i<length; ++i){ if(nums[i]<0) swap(mini, maxi); mini = min(nums[i], mini*nums[i]); maxi = max(nums[i], maxi*nums[i]); sum = max(sum, maxi); } return sum; } };
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 用python写leetcode【6】 --乘积最大子序列(152)、旋转数组(189)
- leetcode152-Maximum Product Subarray(乘积最大子数组)
- LeetCode:152_Maximum Product Subarray | 最大乘积连续子数组 | Medium
- Leetcode 152 Maximum Product Subarray 子数组最大乘积
- LeetCode-152:Maximum Product Subarray (乘积最大连续子数组) -- medium
- LeetCode:152_Maximum Product Subarray | 最大乘积连续子数组 | Medium
- 【LeetCode-面试算法经典-Java实现】【152-Maximum Product Subarray(子数组的最大乘积)】
- LeetCode 152. Maximum Product Subarray--连续子数组最大乘积
- 利用python 完成 leetcode152 乘积最大子序列
- [LeetCode] Maximum Product Subarray 求最大子数组乘积
- LeetCode-628:Maximum Product of Three Numbers (数组三元素最大乘积)
- [LeetCode] 152. Maximum Product Subarray 求最大子数组乘积
- 每天一道LeetCode-----在给定数组中找到一个子数组,使得这个子数组的元素乘积最大
- 【LeetCode】152. Maximum Product Subarray最大连续子数组乘积
- [LeetCode] Maximum Product Subarray 求最大子数组乘积
- 【LeetCode】Maximum Product Subarray 求连续子数组使其乘积最大
- LeetCode-152. Maximum Product Subarray (JAVA)(子数组的最大乘积)
- leetcode152---乘积最大子序列
- LeetCode:152. Maximum Product Subarray Java 子数组最大乘积
- LeetCode Maximum Product Subarray(最大子数组乘积)