軟體工程個人作業04(求數組最大子數組的和)

來源:互聯網
上載者:User

標籤:png   3.1   int   idt   http   stat   void   ram   負數   

  題目:返回一個整數數組中最大子數組的和。

要求:
輸入一個一維整形數組,數組裡有正數也有負數。
一維數組首尾相接,象個一條首尾相接帶子一樣。
數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。求所有子數組的和的最大值。

程式設計思想:程式中使用到一個用來求數組的最大子數組和的函數,這裡可以將原數組的前n-1項加到數組的後面,形成一個新的數組,這樣就可以求這種首尾相連的數組的最大子數組和了。

原始碼:


public class zishuzu {

    /**
     * @param args
     */
    
public static int max(int array[])
{
    int Max=0;
    int sum=0;
    int len;
    len=array.length;
    for(int i=0;i<len;i++)
    {
        sum+=array[i];
        if(sum>Max)
        {
            Max=sum;
        }
        if(sum<0)
        {
            sum=0;
        }
    }
    return Max;
    
}
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[]={1,2,-3,5,7,-8};
        System.out.print("測試數組為:");
        for(int i=0;i<a.length;i++)
        {
            System.out.print(a[i]+",");
        }
        System.out.println("");
        System.out.println("該數組最大子數組的值為:"+max(a));
        int b[]={1,2,-3,5,7,-8,1,2,-3,5,7};
        System.out.print("將數組首尾相連後,數組等價於:");
        for(int k=0;k<b.length;k++)
        {
            System.out.print(b[k]+",");
        }
        System.out.println("");
        
        System.out.println("該數組最大子數組的值為:"+max(b));

    }
    
}



實驗結果:

 周活動總結表:

日期/任務

聽課

閱讀課本

課下學習

 

日總計

周日3.26

 

 

 

 

 

周一

120m

30m

30m

 

150m

周二

 

 

40m

 

40m

周三

 

 

50m

 

50m

周四

120m

40m

20m

 

180m

周五

 

 

40m

 

40m

周六

 

 

40m

 

40m

周總計

240m

70m

2100m

 

540m

 

時間記錄日誌:

日期

開始時間

結束時間

停機時間

淨時間

活動

備忘

C

U

3.6

14:00

16:00

10m

110m

上課,編程

軟體工程課

 

 

3.7

19:00

21:00

20m

100m

看書,編程

寫軟體工程作業

 

 

3.8

19:00

21:00

15m

105m

看書,編程

學javaweb

 

 

3.9

16:00

18:00

10m

110m

上課

Javaweb上課

 

 

3.10

18:00

20:00

30m

90m

構思,寫java

寫四則運算程式3

 

 

軟體工程個人作業04(求數組最大子數組的和)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.