c語言 輸入一組整數,求出最大子串行的和

2021-07-03 16:44:27 字數 1058 閱讀 9567

輸入一組整數,求出最大子串行的和.

例如:序列: - 2 11 - 4 13 - 5 - 2,則最大子串行和為20。

序列: - 6 2 4 - 7 5 3 2 - 1 6 - 9 10 - 2,則最大子串行和為16

遍歷是一種方法:

#include int max_son(int *p, int len)

} }return max_sum;

}int main()

; int array = ;

int len = sizeof(arr) / sizeof(arr[0]);

int lena = sizeof(array) / sizeof(array[0]);

printf("%d\n", max_son(arr, len));//20

printf("%d\n", max_son(array, lena));//16

return 0;

}

還有一種思想。聯機演算法。

重點的乙個思想是:如果a[i]是負數那麼它不可能代表最大序列的起點,因為任何包含a[i]的作為起點的子串行都可以通過用a[i+1]作為起點來改進。

類似的有,任何的負的子串行不可能是最優子串行的字首。

一組陣列中最大子陣列之和 (更新)

1 xiaosong du 2015 3 22 2 include 3 include 4 using namespace std 5 define n 100067 void main 8 19 cout 2021 maxd a 0 22 for int i 0 i n i 2330 if d 0...

C 求整數陣列中和最大子串

現在有乙個陣列,陣列裡面有正數或者負數。如何計算其子串中和的最大值。比如,最大值的子串就應該是值為6 下面我直接給出 了,很簡單的,只是當時自己想錯了,所以這裡我把 重新寫了一遍 1 時間演算法為o n 2 2int maxseqint int a,int n 12 13 return s2 14 ...

輸入一組數,構建有序鍊錶 (C語言實現)

要求說明 輸入一組數,構建有序鍊錶。整體思路 用陣列儲存這組數,每次都去找最小值,把最小值構建結點並使用頭插法插入到單鏈表中。然後將該值刪掉 為簡便起見,把值弄成max 這裡使用的是類直接插入的排序方法。實現 include include define max 1000000 單鏈表結構體定義 t...