題目要求:
輸入乙個一維整形陣列,陣列裡有正數也有負數。一維陣列首尾相接,像個一條首尾相接帶子一樣。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。
程式設計思路:
(1)首先建立乙個一維陣列a,進行資料儲存。
(2)定義變數,n用於求和,m為和最大值
(3)開始for迴圈,n初始化為0,m初始化為a[0]。迴圈內容為n+=a[i];如果n比m大則將n值賦給m,如果n小於0,則定義n=0。迴圈結束,得到最大子陣列的和。
(4)找到a陣列最小值下標j,將j值賦給t。建立陣列b,進行兩次迴圈,第一次迴圈i=0,每迴圈一次j值就增加1,b[i]=a[j],當j>=a.length時,第一次迴圈結束。進行第二次迴圈,令n=0,j=0。每迴圈一次j值就增加1,b[i]=a[j],當j>=t時,形成環。
(5)開始for迴圈,n初始化為0,m為未成環之前得到的最大值。迴圈內容為n+=b[i];如果n比m大則將n值賦給m,如果n小於0,則定義m=0。迴圈結束,得到最大子陣列的和。
源**:
package demo;
public class mmax
int k=a[0];
for(i=0;ia[i])
}t=j;
i=0;
while(j
public static void main(string args) ;
system.out.println("最大子陣列的和為"+aa(a));
} }
程式截圖:
總結:這次作業的完成,是我和張家星同學共同努力找出思路並完善程式的,在團隊的合作下,更容易發現自己的錯誤,也更加容易完善自己的程式。結對程式設計對於我們來說確實受益匪淺。
求子陣列的和的最大值
一 題目 輸入乙個整型陣列,陣列裡有正數也有負數。陣列中乙個或連續的多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為o n 例子說明 例如輸入的陣列為,和最大的子陣列為 3,10,4,7,2 因此輸出為該子陣列的和18 二 解題思路 舉例分析陣列的規律。我們試著從頭到尾逐個累加示例...
erlang 求子陣列和的最大值
前段時間修改為簡單方法 module son export son 1 son a son a,0,0 son max,sum max son head list max,sum new sum head sum,new max case new sum max of true new sum ma...
2 14 求子陣列之和的最大值
include using namespace std int maxsum int src,int n,int spos,int epos else if start all return all int max int a,int b,int c else void toneg int src,...