給定乙個整數陣列,找出兩個不重疊的子陣列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 ...