麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

求子數(shù)組最大和的實(shí)例代碼

2020-01-26 16:20:08
字體:
供稿:網(wǎng)友

題目:
輸入一個(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]};

代碼如下;

復(fù)制代碼 代碼如下:

#include <stdio.h>
#define max(a,b) (a)>(b)?(a):(b)

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

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

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

圖片精選

主站蜘蛛池模板: 91短视频在线视频 | 国产亚洲精品久久久久久网站 | 成人在线97 | 特级毛片免费视频 | 欧美a在线播放 | sm高h视频| 日本网站一区二区三区 | 91麻豆精品国产91久久久更新资源速度超快 | 成人一区久久 | 午夜视频在线在免费 | 亚洲第五色综合网 | 久草视频国产在线 | 精品亚洲视频在线 | av影院在线播放 | 欧美伦理一区二区 | 免费永久看羞羞片网站入口 | 欧美在线成人影院 | 国产一区日韩精品 | 久久国产成人精品国产成人亚洲 | 国产毛片毛片毛片 | 日本网站在线看 | 免费观看一区 | 国产一区二区三区黄 | 国产成人精品免费视频大全最热 | 91色琪琪电影亚洲精品久久 | 蜜桃欧美性大片免费视频 | 日韩精品免费一区二区三区 | 精品小视频 | 亚洲成人入口 | 青青草华人在线 | 一级毛片在线免费观看视频 | 欧美.com| 久久精品视频日本 | 欧美a在线观看 | 精品久久久久久久久久久久包黑料 | 羞羞视频免费网站含羞草 | a黄在线观看 | www.91sese| 亚洲成人久久精品 | 国产精品视频一区二区三区四 | 欧美成在线视频 |