lintcode 45 最大子陣列差

2021-08-16 06:41:57 字數 951 閱讀 3565

給定乙個整數陣列,找出兩個不重疊的子陣列a和b,使兩個子陣列和的差的絕對值|sum(a) - sum(b)|最大。

返回這個最大的差值。

注意事項

子陣列最少包含乙個數

給出陣列[1, 2, -3, 1],返回 6
由於是求兩個子陣列的和的差的最大絕對值。因此總體有兩種情況,一種是左邊的子陣列的最大和遠遠大於右邊子陣列的最小和。另一種是右邊子陣列的最大和遠遠大於左邊子陣列的最小和。因此根據求兩個子陣列最大和的演算法,我們可以推出兩個子陣列和的差的最大絕對值。

public class solution else

if(cur<0)

left[i]=max;

}int min1=nums[nums.length-1];cur=0;

for(int i=0;ilength;i++)

minleft[i]=min1;

}int

min=nums[nums.length-1];cur=0;

for(int i=nums.length-1;i>=0;i--)else

if(cur>0)

right[i]=min;

}max=nums[nums.length-1];cur=0;

for(int i=nums.length-1;i>=0;i--)else

if(cur<0)

maxright[i]=max;

}int max2=integer.min_value;

max=integer.min_value;

for(int i=0;i+1

length;i++)

if(math.abs(minleft[i]-maxright[i+1])>max2)

}return

max>max2?max:max2;

}}

lintcode最大子陣列

最大子陣列 給定乙個整數陣列,找到乙個具有最大和的子陣列,返回其最大和。注意事項 子陣列最少包含乙個數 您在真實的面試中是否遇到過這個題?yes 樣例給出陣列 2,2,3,4,1,2,1,5,3 符合要求的子陣列為 4,1,2,1 其最大和為6 挑戰 要求時間複雜度為o n 標籤 相關題目 分析 這...

LINTCODE 最大子陣列III

lintcode 最大子陣列iii 思路 動態規劃的方法,記mustthelast i j 為在前i個數中分成j段,且第j段必須有第i個數的最大值,notthelast i j 為前i個中分成j段,且第j段不一定含有第i個數的最大值 注意初始化的資料,不能全部初始化為0,不然在全部為負整數以及一些其...

最大子陣列差 LintCode

描述 給定乙個整數陣列,找出兩個不重疊的子陣列a和b,使兩個子陣列和的差的絕對值 sum a sum b 最大。返回這個最大的差值。子陣列最少包含乙個數 樣例 給出陣列 1,2,3,1 返回 6 挑戰 時間複雜度為o n 空間複雜度為o n 思路 構建相應的陣列formax i 表示從nums 0 ...