軟體工程結對開發之求一個數組中連續最大子數組之和

來源:互聯網
上載者:User

標籤:

一、團隊成員:

     檀威,陳志利

二、項目名:

      求一個數組中連續最大子數組之和

三、我們的設計思路:

      設sum[i]為以第i個元素結尾且和最大的連續子數組。對於元素i,所有以它前面的元素結尾的子數組的長度都已經求得,那麼以第i個元素結尾且它們之和最大的連續子數組要麼是以第i-1個元素結尾且它們之和最大的連續子數組加上這個元素,要麼是只包含第i個元素,即sum[i] = max(sum[i-1] + arr[i], arr[i])。可以通過判斷sum[i-1] + arr[i]是否大於arr[i]來做選擇,而這實際上等價於判斷sum[i-1]是否大於0。由此我和陳志利按照這個思路編程如下:

四、代碼:

#include<iostream.h>void main(){while(1){int length;int *arr=new int[length];cout<<"請輸入該數組長度:";cin>>length;cout<<"請輸入該數組:";for(int i=0;i<length;i++){cin>>arr[i];}int result = arr[0];int sum = arr[0];for(i=1;i<length;i++){if (sum > 0){sum += arr[i];}else{sum =arr[i];}if (sum >result)result = sum;}cout<<"該數組中最大連續子數組之和是:"<<result<<endl;cout<<"----------------------------------------"<<endl;}} 

五、運行及測試:

測試了當全是負數,全是正數,全是0,有正有負及各種特殊情況等,都運行正確。

六、總結:

雖然這次不是第一次結對做項目,但是過程中明顯感覺解決問題的時候比一個人考慮的周到全面,效率提高很多,相互學習配合比較順利。

七、工作合照

軟體工程結對開發之求一個數組中連續最大子數組之和

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.