乙個陣列有n
個元素,求連續子陣列的最大和。 例如:[-1,2,1]
,和最大的連續子陣列為[2,1]
,其和為3
。
示例1:
本題是乙個經典的動態規劃問題,簡稱dp
問題,本題題意很簡單,就是求哪一段的子陣列的和最大。
假設sum[i-1]
是以陣列中第nums[i-1]
為最後乙個元素的一段子陣列最大和;
sum[i]
是以陣列中第nums[i]
為最後乙個元素的一段子陣列最大和;
那麼sum[i]
=max(sum[i-1], 0)
+nums[i]
。
理解了這個,下面**中用sum1
表示sum[i-1]
,sum2
表示sum[i]
;
如果計算出更大的子陣列和則儲存到result
中。
如果sum[i]
及sum2
都小於0
了,則置為0
,因為它加上陣列下乙個數,不會計算出更大的子陣列和。
#include
#include
using namespace std;
int main()
cout << result << endl;
return0;
}
#include
#include
using namespace std;
int main()
cout << maxsum << endl;
}
27 連續子陣列的最大和
連續子陣列的最大和 hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了 在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如 連續子向量的最大和為8...
30 連續子陣列的最大和
題目描述 hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了 在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如 連續子向量的最大和為8 從第0個...
42 連續子陣列的最大和
hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了 在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如 連續子向量的最大和為8 從第0個開始,到第...