已知給定序列a1,a2,a3……an,求a1~an的乙個子串行ai~aj,使得ai到aj的和最大
public
static
int maxsub(int sequeuece)
if(sum
<0)
}return max;
}
此演算法時間複雜度為o(n),整個演算法只對陣列進行一次掃瞄即可完成操作。從左到右掃瞄過程中記錄當前子串行的和sum,如果和不斷增加,則sum和max不斷更新;如果遇到sum為負,sum減小,max不更新。如果sum為負數,則可以拋棄(因為往右進行加法時,會導致右側和減少), 分而治之 求子序列最大和
這裡只紀錄一下函式的思想 運用遞迴的思想,先後掃瞄左邊最大值,右邊最大值,和跨中點最大值,比較.int max3 int a,int b,int c int divideandconquer int list,int left,int right 下面是 分 的過程 center left righ...
求子陣列最大和
題目 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸出為該子陣列的和18。因為是o n 的複雜度,...
求子陣列的最大和
題目 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 本題最初為2005年浙江大學計算機系的考研題的最後一道程式設計題,在2006年裡包括google在內的很多知名公司都把本題當作面試題。由於本...