2017.9.22
與最大子陣列的思路類似,只不多要尋找部分和的最大值和最小值
然後再進行比較。
public class solution
if(size == 2)
int leftmax = new int[size];
int leftmin = new int[size];
leftmax[0] = nums[0];
leftmin[0] = nums[0];
int rightmax = new int[size];
int rightmin = new int[size];
/**** leftmax[i] 中記錄 第i個元素左邊元素和的最大值,包含第i個元素。
* leftmin[i] 中記錄 第i個元素左邊元素和的最小值,包含第i個元素。
* ***
*/int maxtmp = nums[0];
int mintmp = nums[0];
int sum1tmp = nums[0];
int sum2tmp = nums[0];
for(int i = 1; i < size-1; i++)
else
maxtmp = math.max(maxtmp, sum1tmp);
leftmax[i] = maxtmp;
// 然後再尋找最小值
if(sum2tmp >= 0)
else
mintmp = math.min(mintmp, sum2tmp);
leftmin[i] = mintmp;
} maxtmp = nums[size - 1];
mintmp = nums[size - 1];
sum1tmp = nums[size - 1];
sum2tmp = nums[size - 1];
rightmax[size - 1] = nums[size-1];
rightmin[size - 1] = nums[size-1];
for(int i = size-2; i >0 ; i--)
else
maxtmp = math.max(maxtmp, sum1tmp);
rightmax[i] = maxtmp;
// 然後再尋找最小值
if(sum2tmp > 0)
else
mintmp = math.min(mintmp, sum2tmp);
rightmin[i] = mintmp;
} int max = integer.min_value;
for(int i = 0; i < size-1; i++)
return max;
}}
42 最大子陣列
原題 42.最大子陣列 ii 討論區 給定乙個整數陣列,找出兩個 不重疊 子陣列使得它們的和最大。每個子陣列的數字在陣列中的位置應該是連續的。返回最大的和。注意事項 子陣列最少包含乙個數 您在真實的面試中是否遇到過這個題?yes樣例給出陣列 1,3,1,2,1,2 這兩個子陣列分別為 1,3 和 2...
最大子陣列差
給定乙個整數陣列,找出兩個不重疊的子陣列a和b,使兩個子陣列和的差的絕對值 sum a sum b 最大。返回這個最大的差值。樣例給出陣列 1,2,3,1 返回 6 注意子陣列最少包含乙個數 挑戰時間複雜度為o n 空間複雜度為o n class solution return result pri...
最大子陣列差 LintCode
描述 給定乙個整數陣列,找出兩個不重疊的子陣列a和b,使兩個子陣列和的差的絕對值 sum a sum b 最大。返回這個最大的差值。子陣列最少包含乙個數 樣例 給出陣列 1,2,3,1 返回 6 挑戰 時間複雜度為o n 空間複雜度為o n 思路 構建相應的陣列formax i 表示從nums 0 ...