给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。
示例 1:
输入: [2,3,-2,4]
输出: 6
解释: 子数组 [2,3] 有最大乘积 6。
示例 2:
输入: [-2,0,-1]
输出: 0
解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
ListNode *p1 = headA,*p2 = headB;
if(p1 == NULL || p2 == NULL)return NULL;
bool flag = false;
while(true){
p1 = p1->next;
p2 = p2->next;
if(p1 == NULL && !flag){
p1 = headB;
flag = true;
}
if(p2 == NULL){
p2 = headA;
}
if(flag && p1 == NULL)return NULL;
if(flag && p1 == p2)return p1;
}
}
};