首页 > 代码库 > LeetCode:Maximum Product Subarray
LeetCode:Maximum Product Subarray
题目描述:
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
思路:从左至右遍历数组,记录下以当前所遍历到的元素结尾的子数组积的最大值和最小值(因为数组里面可能存在负数),同时记录下得到的所有最大值中最大的。循环结束时,得到的所有最大值中最大的即为所求。
代码:
int Solution::maxProduct(int A[],int n){ if(n == 1) return A[0]; int max_temp = A[0]; int min_temp = A[0]; int result = A[0]; int i; for(i = 1;i < n;i++) { int max_temp2 = max_temp * A[i]; int min_temp2 = min_temp * A[i]; max_temp = max(max_temp2,max(min_temp2,A[i])); min_temp = min(min_temp2,min(max_temp2,A[i])); if(max_temp > result) result = max_temp; } return result;}
LeetCode:Maximum Product Subarray
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。