原題 求兩個不相交的連續子陣列的最大和

2021-07-04 23:09:15 字數 743 閱讀 7846

題目:

有乙個整數陣列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 注意,如果兩個...