求乙個整型陣列的最大子陣列的和

2022-05-04 23:18:06 字數 1127 閱讀 4036

團隊成員:遲真真 馮小蘭

求乙個整型陣列的最大子陣列的和

看到這個題目,是這樣想的:

子陣列的元素個數為1個,2個,3個、、、、、n個

#include#define m 100

void

main()

}while(n>0) //

比較相鄰2,3。。n個相鄰元素時的最大值

if(m>max)

}n--;

}printf(

"最大為:%d

",max);

}

後來又想了一種這樣的方法,如下:

a[0]

a[0]+a[1]

a[0]+a[1]+a[2]

a[0]+a[1]+a[2]+……a[n-1]

a[1]

a[1]+a[2]

a[1]+a[2]+a[3]

a[1]+ a[2]+a[3]+……..a[n-1]

a[2]

a[2]+a[3]

a[2]+a[3]+a[4]

a[2]+a[3]+a[4]+……a[n-1]

以此類推:

a[i]

a[i]+a[i+1]

a[i]+a[i+1]………a[n-i]

因此可以找到規律,然後用3個for迴圈語句。

#includevoid

main()

if(m>max)}}

printf(

"最大子陣列的和為:%d\n

",max);

}

但是考慮到時間空間複雜度,這種方法貌似不太好

可以先比較出和的最大值,把這些和的最大值放在乙個陣列中,然後再求這個陣列的最大值。

執行結果:

下面是分析的過程草稿:

歡迎指正!

返回乙個整型陣列中最大子陣列的和

1.題目 返回乙個整數陣列中最大子陣列的和。要求 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 2.設計思想 本題目最大的難點是如何找出子陣列並且時間複雜度為o n 我的思路是 從總左邊 a ...

題目1 給乙個整型陣列,求最大子串行和

馬上要開始找工作了,做些題目練練手。源 在vc6下通過編譯,正確執行 的理解更加清晰了,在此向作者表示感謝。最大子段和問題的動態規劃求解 1.基本原理 設陣列為a k 1 k n,最大子段和x 被定義為 jx max 1 i j n k i 不妨設 j b j max 1 j n k m 其中m 是...

演算法 求乙個陣列的最大子陣列

思路 1 全負數 取最大的數即可 2 存在非負數 遇見負數就不加,然後和前乙個子串行的和做比較,取大的 public class maxchildarray return items items.length 1 不是全負數的情況,sum必定大於等於0 int sum 0 int partsum 0...