a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

C語言中求子數組最大和的實現

2020-02-24 14:36:58
字體:
來源:轉載
供稿:網友

學習之路不可停止,最近在玩C語言,自己也動手嘗試寫了些實例,下面武林小編給各位分享C語言中求子數組最大和的實現,在這個過程里面,或許能增長見識,一切都歸于我們的心態與行動。

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

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

找到狀態轉移方程,dp[i]表示前i個數中,包含i的子數組的最大和。要么第i個數自己最大,要么他要和包含i-1的子數組最大和(即dp[i-1])聯合在一起.
即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){
??? //學到一個定義最小數的方法:)
??? 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語言中求子數組最大和的實現,如果有哪些地方還不清楚可以留言給我,如果覺得我寫得不錯的話,請繼續關注武林技術頻道,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 久久精品一区二区 | 国产成人精品久久二区二区91 | 屁屁影院一区二区三区 | 夜夜夜操操操 | 国产精品99| 欧美一级裸体视频 | 日本黄色a级 | 搞黄视频在线观看 | 日韩精品专区在线影院重磅 | 久久99精品久久久噜噜最新章节 | 亚洲精品第一页 | 中文字幕精品一区二区三区精品 | 国产成人在线免费看 | 国产成人精品免费视频大全最热 | 欧美极品一区二区三区 | 在线成人亚洲 | 精品在线不卡 | 99久久99久久精品 | 国产午夜精品久久久 | 密室大逃脱第六季大神版在线观看 | 久久精品成人免费视频 | 视频二区 | 日日夜夜av| 欧美综合在线观看 | 久草精品在线观看 | 再深点灬舒服灬太大了添少妇视频 | 亚洲毛片网站 | 欧美成人精品一区二区 | 亚洲精品一二区 | 国产高清中文字幕 | 欧州一区二区三区 | 欧美一区成人 | 特级做a爰片毛片免费看108 | 亚洲成人一区二区三区 | 91福利视频导航 | 国产精品成人3p一区二区三区 | 国精产品一区一区三区在线观看 | 国产一区二区三区在线免费观看 | 91麻豆精品国产91久久久更新资源速度超快 | 一区二区不卡在线观看 | 淫语对白 |