刷算法題:求一個(gè)序列的最大子序列之和!

求一個(gè)序列的最大子序列之和!

不是求最大子序列之和嘛!我腦子居然就一直關(guān)注到了最大子序列上去了,
導(dǎo)致我想著實(shí)現(xiàn)代碼時(shí)、寫代碼時(shí)居然還去標(biāo)示它的位置,我真是傻??!
關(guān)鍵地方是之和對不對。只要我先找到此序列的一個(gè)最大值,然后從這個(gè)
最大值向兩邊擴(kuò)展就可以找到這個(gè)序列最大和。每次如何辨別擴(kuò)展的下一個(gè)數(shù)
是不是我要的數(shù)呢!當(dāng)然就是首先預(yù)先用sumcopy做一個(gè)當(dāng)前最大子序列和的一個(gè)副本。
每檢測下一個(gè)數(shù)r[i]時(shí),把它sumcopy+=r[i],是不是,只要sumcopy>sum。咋就
更新sum=sumcopy,把這個(gè)sumcopy作為最大子序列和。
這里我又有一個(gè)我思維缺陷的地方,我想的時(shí)候老是關(guān)注擴(kuò)展的下一個(gè)數(shù)是正數(shù)還是負(fù)數(shù),
真是笨啊,是不是。管它是正還是負(fù)。關(guān)鍵是最后能不能讓我變的更強(qiáng)大這才是最重要的
(一切以最大和為主)。為啥會這樣想呢,因?yàn)槿菀字镭?fù)的會讓序列變小,正的變大。
雖然我也想到了【當(dāng)前、負(fù)負(fù)負(fù)負(fù)負(fù)強(qiáng)強(qiáng)強(qiáng)負(fù)負(fù)】的情況(導(dǎo)致我去關(guān)注了正數(shù)的下標(biāo))。
其實(shí)咋不用管。不管正負(fù),咋先這個(gè)走過去,加到sumcopy里來。咋只到最后看最后的結(jié)果。
當(dāng)全部掃描到最后(最前一個(gè)、最后一個(gè))if(sumcopy>sum)sumcopy=sum。
這是我一個(gè)思維的誤區(qū)!好既然認(rèn)識到自己這個(gè)地方的思維缺陷,那我要從心里
殺死這個(gè)思維誤區(qū),和它說再見!

總結(jié):這個(gè)算法告訴我們。你選擇的人生道路可能會經(jīng)歷野火燒不盡的苦難。堅(jiān)持下去到最后,
你可能依舊還是很慘_,有時(shí)候得知道糾正回頭。但也有可能經(jīng)歷許多痛苦后
你會收獲很大,讓你遠(yuǎn)遠(yuǎn)強(qiáng)于今天的自己!

#include<iostream>
using namespace std;
void maxProportion(int arr[],int n){
    int i=0,k=0,high=0,low=0,maxsum=0,maxsumcopy=0;
    for(i=1;i<n;i++){
        if(arr[i]>arr[k]){
            k=i;
        }
    }
    maxsumcopy=maxsum=arr[k];
    high=k+1;low=k-1;
    while(high<n){
        maxsumcopy+=arr[high];
        if(maxsumcopy>maxsum){
                maxsum=maxsumcopy;
        }
        ++high;
    }
    maxsumcopy=maxsum;
    while(low>=0){
        maxsumcopy+=arr[low];
        if(maxsumcopy>maxsum){
                maxsum=maxsumcopy;
        }
        --low;
    }
cout<<maxsum<<endl;

}

int main()
{   
    int n,i;
    //cout<<"你想輸入幾個(gè)數(shù)?";
    cin>>n;
    int arr[n];
    //cout<<"輸入"<<n<<"個(gè)數(shù):";
    for(i=0;i<n;i++){
        cin>>arr[i];
    }
    // int n=6;
    // int arr[]={-2,11,-4,13,-5,-2};
    maxProportion(arr,n);


    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容