子陣列最大差

2021-08-14 14:39:23 字數 906 閱讀 8931

給定乙個整數陣列,找出兩個不重疊

的子陣列a和b,使兩個子陣列和的差的絕對值|sum(a) - sum(b)|

最大。

返回這個最大的差值。

注意事項

子陣列最少包含乙個數

您在真實的面試中是否遇到過這個題?

yes

樣例給出陣列[1, 2, -3, 1]

,返回 6 挑戰

時間複雜度為o(n),空間複雜度為o(n)

點題:不重疊的理解是什麼意思?

class solution 

vectorleft_mins(nums.size(), 0);

vectorleft_maxs(nums.size(), 0);

vectorright_mins(nums.size(), 0);

vectorright_maxs(nums.size(), 0);

int cur_sum_min = 0;

int cur_sum_max = 0;

int max_sum = int_min;

int min_sum = int_max;

for (int i = 0; i < nums.size(); i++)

cur_sum_min = 0;

cur_sum_max = 0;

max_sum = int_min;

min_sum = int_max;

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

int max_diff = int_min;

for (int i = 0; i < nums.size() - 1; i++)

return max_diff;

}};

陣列中的最大差值

有乙個長為n的陣列a,求滿足0 a b給定陣列 a及它的大小 n,請返回最大差值。解析 貪心思想,時間複雜度為o n 設定當前陣列中的最小值為min value。初始化為arr 0 然後依次遍歷陣列中的每乙個元素,當遍歷到乙個元素時求出當前元素與之前的min value差值,用該差值和當前最大的差值...

無序陣列求最大差值

乙個陣列a 0.n 1 求a j a i 的最大值,其中icite 第一種方法 從左往右求下標0到 k 1 的最小值min 從右往左求 下標k到n 1 的最大值max,對於每個k都有乙個max min的值,最後求這個值的最大值即可。例如陣列 4 5 2 6 3 1 k 1 2 3 4 5 min 4...

陣列相鄰兩數最大差值

思路 因為要求時間複雜度為o n 且不能用非比較排序,常用的比較排序很難做到o n 這裡是借助n 1個桶,將n個數平均分配到n個桶裡,所以我們所求的最大差值肯定不在乙個桶內 只有乙個數另說 然後依次求出當前桶最小值與前乙個非空桶最大值的差值,求出最大的差值就是我們要的結果。static class ...