c c 演算法之求連續子陣列的最大和

2021-06-14 16:45:16 字數 638 閱讀 9603

乙個整型陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和,求所有子陣列的和的最大值,例如輸入的陣列為1,-2,3,10,-4,7,2,-5,那麼最大的子陣列為3,10,-4,7,2,因此輸出為該子陣列的和18

int maxsum(int* a,int n)

else if (a[j]<0)

}if(tmpaj<0)

continueadd=false;

}if (!continueadd)

} if(tempsum>maxsum)

maxsum=tempsum;

} return maxsum;

}int main()

; int b=;

int temp=maxsum(b,3);

cout《實現過程雖然有點麻煩,但還是比較容易理解,犧牲了演算法複雜度

當若要求時間複雜度為o(n)。  

int maxsum(int* a,int n)

}if(sum < 0)

}return max;

}void main()

;int b=;

int max = maxsum(a,8);

cout<}

演算法 求連續子陣列的最大和

題目描述 輸入乙個整數陣列,陣列中有乙個或者多個連續的字串,求所有字串的和的最大值。例如 輸入 1 2 3 10 4 7 2 5 輸出 18 解題思路1 動態規劃使用dp i 來儲存以i結尾的最大連續子陣列的和,只需要求出max dp i 即可得到最大連續子陣列的和。當dp i 1 第i個元素比第二...

求連續子陣列最大和

輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。例如輸入的陣列為 2,11,4,13,5,2 和最大的子陣列為11,4,13 因此輸出為該子陣列的和20。本題解法多種多樣,時間複雜度可以為 o n 3 o n 2 o ...

C C 連續子陣列的最大和

c 連續子陣列的最大和 問題分析 見到這個問題的第一反應可能是暴力求解,依次遍歷陣列的子陣列,但往往此方法的時間複雜度比較高,因此肯定不是最優解 隨意給出乙個陣列 array 可以看到如果從頭開始累加,那麼到第二項時,子陣列和就會程式設計負數,因此該和不可能成為可能解。因此可以得出一下結論和步驟 當...