描述
給定乙個整數陣列,找出兩個不重疊的子陣列a和b,使兩個子陣列和的差的絕對值|sum(a) - sum(b)|最大。
返回這個最大的差值。
子陣列最少包含乙個數
樣例 給出陣列[1, 2, -3, 1],返回 6
挑戰 時間複雜度為o(n),空間複雜度為o(n)
思路 構建相應的陣列formax[i]表示從nums[0]到nums[i]的子陣列和的最大值,formin[i]表示從nums[0]到nums[i]的子陣列和的最小值,revmax[i]表示從nums[i]到nums[len-1]的子陣列和的最大值,revmin[i]表示從nums[i]到nums[len-1]的子陣列和的最小值。最終的結果取formax[i] - revmin[i + 1]與revmax[j] - formin[j - 1]的最大值
#ifndef c45_h
#define c45_h
#include
#include
#include
using
namespace
std;
class solution
max = nums.back(), min = nums.back();
curmax = max, curmin = min;
for (int i = len - 2; i >= 0; --i)
//計算formax[i] - revmin[i + 1]
for (int i = 0; i < len - 1; ++i)
//計算revmax[i] - formin[i - 1]
for (int i = len - 1; i > 0; --i)
return res;
}};#endif
lintcode 45 最大子陣列差
給定乙個整數陣列,找出兩個不重疊的子陣列a和b,使兩個子陣列和的差的絕對值 sum a sum b 最大。返回這個最大的差值。注意事項 子陣列最少包含乙個數 給出陣列 1,2,3,1 返回 6由於是求兩個子陣列的和的差的最大絕對值。因此總體有兩種情況,一種是左邊的子陣列的最大和遠遠大於右邊子陣列的最...
lintcode最大子陣列
最大子陣列 給定乙個整數陣列,找到乙個具有最大和的子陣列,返回其最大和。注意事項 子陣列最少包含乙個數 您在真實的面試中是否遇到過這個題?yes 樣例給出陣列 2,2,3,4,1,2,1,5,3 符合要求的子陣列為 4,1,2,1 其最大和為6 挑戰 要求時間複雜度為o n 標籤 相關題目 分析 這...
最大子陣列差
給定乙個整數陣列,找出兩個不重疊的子陣列a和b,使兩個子陣列和的差的絕對值 sum a sum b 最大。返回這個最大的差值。樣例給出陣列 1,2,3,1 返回 6 注意子陣列最少包含乙個數 挑戰時間複雜度為o n 空間複雜度為o n class solution return result pri...