刷题152. Maximum Product Subarray

一、题目说明

题目152. Maximum Product Subarray,给一列整数,求最大连续子序列,其乘积最大。难度是Medium!

二、我的解答

这个题目,用双重循环就可以了。

class Solution{
	public:
		int maxProduct(vector& nums){
			if(nums.size()<=1) return nums[0];
			product = INT_MIN;
			int len = nums.size();
			
			for(int i=0;iproduct) product = p;
				for(int t=i+1;tproduct) product = p;
				}
			}
			return product;
		}
	private:
		int product;
};

性能如下:

Runtime: 200 ms, faster than 6.16% of C++ online submissions for Maximum Product Subarray.
Memory Usage: 9.1 MB, less than 82.50% of C++ online submissions for Maximum Product Subarray.

三、优化措施

仔细再读读题目,一列整数,上述方法太“通用”,一次循环就可以了。

class Solution{
	public:
		//dp,其中dp[i]表示以第i个元素结尾的最大乘积 
		int maxProduct(vector& nums){
			if(nums.size()<=1) return nums[0];
			dpMax = nums[0];
			dpMin = nums[0];
			maxProd = nums[0];
			int len = nums.size();
			
			for(int i=1;i
Runtime: 16 ms, faster than 9.45% of C++ online submissions for Maximum Product Subarray.
Memory Usage: 9.1 MB, less than 75.00% of C++ online submissions for Maximum Product Subarray.

你可能感兴趣的:(刷题152. Maximum Product Subarray)