日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

数组01

發(fā)布時(shí)間:2024/6/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数组01 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目:返回一個(gè)整數(shù)數(shù)組中最大子數(shù)組的和。

要求:

  1、?輸入一個(gè)整形數(shù)組,數(shù)組里有正數(shù)也有負(fù)數(shù)。

  2、 數(shù)組中連續(xù)的一個(gè)或多個(gè)整數(shù)組成一個(gè)子數(shù)組,每個(gè)子數(shù)組都有一個(gè)和。

  3、 求所有子數(shù)組的和的最大值。要求時(shí)間復(fù)雜度為O(n)

?

設(shè)計(jì)思想:

  核心算法:動(dòng)態(tài)規(guī)劃。

  剛開(kāi)始的時(shí)候并沒(méi)有找到合適的算法,只能夠設(shè)置數(shù)組的長(zhǎng)度為特定的數(shù)值,然后每一種情況都考慮到,但是對(duì)于很大的數(shù)值來(lái)說(shuō),就無(wú)法實(shí)現(xiàn)了,直到找到了動(dòng)態(tài)規(guī)劃方法,然后才解決了核心的算法問(wèn)題,時(shí)間復(fù)雜度為O(n)滿足題目需求。

?

源代碼: 

1 //數(shù)組1 2 //胡浩特、朱子嘉 2016/3/21 3 4 #include<iostream> 5 using namespace std; 6 7 int MaxSum3(int a[], int n){//優(yōu)化方案 時(shí)間O(n) 空間 O(1) 8 //int A,N; 9 int nStart = a[n - 1]; 10 int nAll = a[n - 1]; 11 for (int i = n - 2; i >= 0; i--) 12 { 13 if (nStart<0) 14 nStart = 0; 15 nStart += a[i]; 16 if (nStart>nAll) 17 nAll = nStart; 18 } 19 return nAll; 20 } 21 int main() 22 { 23 24 int i, length; 25 cout << "請(qǐng)輸入數(shù)組長(zhǎng)度:"; 26 cin >> length; 27 int a[50]; 28 cout << "請(qǐng)輸入數(shù)組值:"; 29 30 for (i = 0; i < length; i++) 31 { 32 cin >> a[i]; 33 } 34 35 36 cout<<MaxSum3(a, length)<<endl; 37 return 0; 38 }

?

結(jié)果截圖:

  三組測(cè)試數(shù)據(jù):

  1、都為正數(shù),最大值為數(shù)組之和。

  

  2、都為負(fù)數(shù),結(jié)果為最大的負(fù)數(shù)。

  

  3、有正數(shù)有負(fù)數(shù)還有有0。

  

實(shí)驗(yàn)總結(jié):

  整個(gè)實(shí)驗(yàn)的關(guān)鍵在于算法的實(shí)現(xiàn),對(duì)于這個(gè)問(wèn)題來(lái)說(shuō)有三種合適的算法,但是只有動(dòng)態(tài)規(guī)劃才滿足時(shí)間復(fù)雜度的要求。通過(guò)查找資料和自己研究才找到合適的算法。對(duì)于我來(lái)說(shuō),實(shí)驗(yàn)很簡(jiǎn)單但是還是花費(fèi)了不少的努力。這一次實(shí)驗(yàn)是一個(gè)新的開(kāi)始,希望自己可以做好數(shù)組的一系列的實(shí)驗(yàn)。

轉(zhuǎn)載于:https://www.cnblogs.com/JYQ-hu/p/5313171.html

總結(jié)

以上是生活随笔為你收集整理的数组01的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。