題目:
有乙個整數陣列n,a和b是n裡兩個互不相交的子陣列。返回sum(a)+sum(b)的最大值。
分析:新建兩個陣列left和right,left[i]表示n[0:i]的連續子陣列的最大和,right[i]表示n[i:length-1]的連續子陣列的最大和。left[i]+right[i+1]的最大值就是答案。
int sumoftwosubarray(const vector&n)
vectorleft(n.size()), right(n.size());
int sum = n[0], maxnum = n[0];
left[0] = n[0];
right.back() = n.back();
for (uint32_t i = 1; i < n.size()-1; ++i)
left[i] = maxnum;
} sum = n.back();
maxnum = n.back();
for (uint32_t i = n.size()-2; i >=1; --i)
right[i] = maxnum;
} int res = 0x80000000;
for (uint32_t i = 0; i < n.size() - 1; ++i)
res = max(res, left[i] + right[i + 1]);
return res;
}
求兩個不相交的最長不降子串行
例題 comet oj contest 6b 雙倍快樂 題意 comet 求序列 a 中的兩個不相交的不下降子串行使得他們的元素和的和最大,子串行可以為空。hdu 一棵樹有若干蘋果,蘋果有個甜度 高度,要求選兩個的吃蘋果序列的甜度與高度均單調不減。求吃最大的蘋果數。說人話 給定n個蘋果,按照高度排序...
求m個不相交子段的和(複雜dp
題目 給定n,m,求長度為n的數列的m個不相交子列的最大和。視狀態為dp i j 為分成i組以j結尾的最大子列和,狀態轉移方程為 dp i j max a j a a j 與a j 1 相連組成第i個子列 b a j 不與任何子列相連,獨自形成第i個子列 i的移動需要m次迴圈,j的移動需要n次迴圈,...
求兩個鍊錶的相交節點
編寫乙個程式,找到兩個單鏈表相交的起始節點。輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the node with value 8 輸入解釋 相交節點的值為 8 注意,如果兩個...