LeetCode 153 maximum subarray product
2016-12-08 17:56
441 查看
题目要求:Find the contiguous subarray within an array (containing at least one number) which has the largest product.For example, given the array
[2,3,-2,4],the contiguous subarray
[2,3]has the largest product =
6.该题目如果只是用简单的多次for循环的方式,会出现 time limited因此因该使用动态规划算法(DP)选取的时候,当该点与后面的以为是相乘的时候,如果小于后面的数字就应该将后面的数字更新为新的起点.但是新的起点并不意味着原来的乘积也要跟着更新,只用新的乘积超过原有的乘积的时候才能将新的乘积结果也更新的现在的结果同时应当注意负数相乘的结果,因此在计算的时候也应当在保存一个最大值的时候也进行保存一个最小值.
public class Solution { public int maxSubArray(int[] nums) { //使用动态规划的方式进行解题 //同时应当注意起始点的选取 int maxTemp = nums[0]; int minTemp = nums[0]; int productTemp = nums[0]; for(int i = 1; i < nums.length; i++) { int value1 = nums[i] * maxTemp; int value2 = nums[i] * minTemp; maxTemp = Math.max(Math.max(value1, value2), nums[i]); minTemp = Math.min(Math.min(value1, value2), nums[i]); productTemp = Math.max(productTemp, maxTemp); } return productTemp; } }updatepython解法还是python写起来简单class Solution(object):def maxProduct(self, nums):""":type nums: List[int]:rtype: int"""max_value = min_value = product = nums[0]for n in nums[1:]:max_value, min_value = max(max(n * max_value, n * min_value), n), min(min(n * max_value, n * min_value), n)product = max(max_value, product)return product
相关文章推荐
- LeetCode:152_Maximum Product Subarray | 最大乘积连续子数组 | Medium
- [leetcode]Maximum Product Subarray
- LeetCode Maximum Product SubArray
- LeetCode152:Maximum Product Subarray
- LeetCode Maximum Product Subarray_DP_最大子数组
- LeetCode Maximum Product Subarray 解题报告
- [LeetCode] Maximum Product Subarray 解题思路
- leetcode 152 —— Maximum Product Subarray
- LeetCode——Maximum Product Subarray
- [LeetCode] Maximum Product Subarray的4种解法
- leetcode: Maximum subarray product 菜鸟解法
- LeetCode题库解答与分析——#152. 乘积最大子序列MaximumProductSubarray
- LeetCode Maximum Product Subarray 解题报告
- LeetCode(152) Maximum Product Subarray
- leetcode Maximum Product Subarray
- Maximum Product Subarray 【leetcode】
- [Leetcode] Maximum Product Subarray
- LeetCode_Maximum Subarray | Maximum Product Subarray
- Maximum Product Subarray - LeetCode 152
- LeetCode: Maximum Product Subarray && Maximum Subarray &子序列相关