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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

编程之美 2.14求数组的子数组之和的最大值

發(fā)布時間:2024/10/12 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程之美 2.14求数组的子数组之和的最大值 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

對于一個有N個元素的數(shù)組,a[0]~a[n-1],求子數(shù)組最大值。

如:數(shù)組A[] = [?2, 1, ?3, 4, ?1, 2, 1, ?5, 4],則連續(xù)的子序列[4,?1,2,1]有最大的和6.

?

?

方法一:暴力

循環(huán)遍歷,輸出所有,判斷最大的和

1 #include"iostream" 2 #define MAX 1001 3 using namespace std; 4 5 int main(){ 6 int n, a[MAX], sum , maxsum ; 7 8 cin >> n; 9 for (int i = 0; i<n; i++) 10 { 11 cin >> a[i]; 12 } 13 maxsum = a[0]; 14 15 for (int i = 0; i<n; i++) 16 { 17 sum = 0; 18 for (int j = i; j<n; j++) 19 { 20 sum += a[j]; 21 if (maxsum<sum) 22 maxsum = sum; 23 } 24 } 25 cout << maxsum; 26 27 }

需要注意的是,數(shù)組可能全負(fù){-1,-2,-3,-4},最大為-1.

時間復(fù)雜度O(n^2)

?

方法二:

遍歷數(shù)組,依次判斷數(shù)組中的每一個元素的值 將其與0作比較, 如果其大于等于0,再判斷之前子數(shù)組的和是否大于0,如果之前子數(shù)組的和小于0,則當(dāng)前元素即為當(dāng)前子數(shù)組之和。如果之前子數(shù)組之和大于0,則將當(dāng)前元素與之前子數(shù)組之和相加,相加之和作為當(dāng)前子數(shù)組之和。 如果其小于0判斷Max是否大于等于0如果Max大于等于0則將當(dāng)前元素與之前子數(shù)組之和相加,相加之和作為當(dāng)前子數(shù)組之和,跳過循環(huán)如果Max小于0當(dāng)前子數(shù)組之和即為當(dāng)前元素將當(dāng)前子數(shù)組之和與最大值Max作比較 如果其大于最大值,則更新 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 int n, s[10], sum, Max; 8 9 cin >> n; 10 for(int i = 0; i < n; ++i) 11 cin >> s[i]; 12 13 for(int i = 0; i < n; ++i) 14 { 15 if(i == 0) 16 Max = sum = s[i]; //將sum和Max初始化為數(shù)組中的第一個元素的值。 17 else 18 { 19 if(s[i] >= 0) 20 { 21 if(sum <= 0) 22 sum = s[i]; 23 else 24 sum = sum + s[i]; 25 } 26 else 27 { 28 if(Max >= 0) 29 { 30 sum = 0; 31 continue; 32 } 33 34 else 35 sum = s[i]; 36 } 37 38 if(sum > Max) 39 Max = sum; 40 } 41 } 42 cout << "max = " << Max << endl; 43 return 0; 44 }

時間復(fù)雜度為O(n)。

轉(zhuǎn)載于:https://www.cnblogs.com/SeekHit/p/5568339.html

總結(jié)

以上是生活随笔為你收集整理的编程之美 2.14求数组的子数组之和的最大值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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