国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言中求子數(shù)組最大和的實(shí)現(xiàn)

2020-02-24 14:36:58
字體:
供稿:網(wǎng)友

學(xué)習(xí)之路不可停止,最近在玩C語言,自己也動手嘗試寫了些實(shí)例,下面武林小編給各位分享C語言中求子數(shù)組最大和的實(shí)現(xiàn),在這個(gè)過程里面,或許能增長見識,一切都?xì)w于我們的心態(tài)與行動。

題目:
輸入一個(gè)整形數(shù)組,數(shù)組里有正數(shù)也有負(fù)數(shù)。
數(shù)組中連續(xù)的一個(gè)或多個(gè)整數(shù)組成一個(gè)子數(shù)組,每個(gè)子數(shù)組都有一個(gè)和。
求所有子數(shù)組的和的最大值。要求時(shí)間復(fù)雜度為O(n)。

例如輸入的數(shù)組為1, -2, 3, 10, -4, 7, 2, -5,和最大的子數(shù)組為3, 10, -4, 7, 2,
因此輸出為該子數(shù)組的和18。

找到狀態(tài)轉(zhuǎn)移方程,dp[i]表示前i個(gè)數(shù)中,包含i的子數(shù)組的最大和。要么第i個(gè)數(shù)自己最大,要么他要和包含i-1的子數(shù)組最大和(即dp[i-1])聯(lián)合在一起.
即dp[i] = max{arr[i],dp[i-1]+arr[i]};

代碼如下;

?


#include
#define max(a,b) (a)>(b)?(a):(b)

?

int res(int* arr, int len){
??? //學(xué)到一個(gè)定義最小數(shù)的方法:)
??? int max = -(1??? int i;
??? for(i=1;i??????? arr[i] = max(arr[i],arr[i-1]+arr[i]);
??????? if(max ??? }
??? return max;
}

int main(){
??? int arr[] = {1,-2,3,10,-4,7,2,-5};
??? printf("%d/n",res(arr,8));
??? return 0;
}

以上就是C語言中求子數(shù)組最大和的實(shí)現(xiàn),如果有哪些地方還不清楚可以留言給我,如果覺得我寫得不錯的話,請繼續(xù)關(guān)注武林技術(shù)頻道,謝謝!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 巴青县| 固原市| 秀山| 旬邑县| 泰兴市| 海淀区| 肥城市| 利川市| 广昌县| 多伦县| 抚松县| 登封市| 城固县| 临汾市| 西乌珠穆沁旗| 泸西县| 军事| 江达县| 牡丹江市| 泊头市| 富宁县| 桓台县| 景德镇市| 新野县| 济宁市| 温州市| 石棉县| 屏东县| 吴桥县| 昌黎县| 牟定县| 弥渡县| 隆回县| 梧州市| 云南省| 平阴县| 衡山县| 庆元县| 都江堰市| 扬中市| 浦北县|