问题
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
.
1. classSolution {
2. public:
3. int maxProduct(vector<int>& nums){
4. int length = nums.size();
5. if(length == 0)
6. return 0;
7. if(length == 1)
8. return nums[0];
9. int max, min;
10. int a,b,r = nums[0];
11. for(int i = 0;i < length;i ++){
12. max = nums[i];
13. min = nums[i];
14. for(int j = i + 1;j < length;j++){
15. a = nums[j] * max;
16. b = nums[j] * min;
17. min = a < b ? a : b;
18. max = a > b ? a : b;
19. r = max > r ? max : r;
20. }
21. r = nums[i] > r ? nums[i] :r;
22. }
23. return r;
24. }
25. };