乙個有n個整數元素的一維陣列a,求這個陣列的兩段不相交的子陣列之和的最大值。
明確題意:
1.子陣列是連續的;
2.陣列元素可能包含有正整數、零、負整數。
舉個例子,陣列a=,陣列a的子陣列有很多個,符合題意的兩段子陣列是和,所以和的最大值是9。
思路:
1.首先分析陣列是否全為非正數或者全為非負數,如果是,只需要對陣列進行乙個排序,然後選取值最大的兩個元素相加即可;
2.如果陣列中同時包含正負整數(或者零),則把所有負數出現的位置看作是乙個分隔符,陣列在每個負數的位置斷開形成若干個子陣列,依次將每段子陣列的元素之和儲存起來,最後選擇其中最大的兩個相加。
code:
public static int twosubarraymaxsum(int a)
}quicksort(data,0,data.length-1);
return data[data.length-1]+data[data.length-2];
}
求陣列的子陣列之和最大值
題目 乙個有n個整數元素的一維陣列a 0.n 1 這個陣列當然有很多子陣列,那麼子陣列之和最大值是多少?解答 求子陣列之和最大,這裡是連續的子陣列,如果乙個數為負數,陣列之和會減少,記住最大值,只要陣列之和沒有小於0就可以繼續累加,比如,3到 1子陣列之和減小了,但是沒有小於0,可以繼續累加下乙個數...
求陣列的子陣列之和的最大值
本題的要求顯然是o n 級的複雜度咯 結合書上的分析,可以發現如下條件 從陣列右邊像左遍歷,當前下標為i,那麼最大值有3中情形 1.最大值為array i 2.最大值為array i maxsuminclude 3.最大值為不包括array i 的maxsumexclude 最後返回最大值 max ...
求陣列的子陣列之和的最大值
乙個有n個整數元素的一維陣列 a 0 a 1 a n 2 a n 1 這個陣列當然有很多子陣列,那麼子陣列之和的最大值是什麼呢?下面將給出3種解法的 解法一 int max maxsum1 int a,int n return maxnum 分析 該演算法的複雜度為o n2 解法二 思路 我們考慮陣...