Java編程----連續子數組的最大和__演算法

來源:互聯網
上載者:User

本篇部落格的編程是關於數組的,數組在編程中有著舉足輕重的地位,因為在Java中數組是直接儲存在棧中的,所以操作起來很方便,效率非常高,數組也是面試中經常考察的一部分,關於數組的編程題目豐富多樣,邏輯性很強,希望大家多加練習,提高自己解決問題的能力。

題目描述:在一維數組中,求出連續子數組的最大和。如果數組中全是整數,那麼最大和為所有元素之和,那麼存在負數呢。例如:{6,-3,-2,7,-15,1,2,2},連續子向量的最大和為8(從第0個開始,到第3個為止)。

題目要求: 時間限制:1秒   空間限制:32768K

解題思路:

1. 首先,我們需要定義一個變數currentSum,用for迴圈來記錄前i項的和,currentSum每次都會更改,如果currentSum的值小於0,我們再往後加只有減小最大和,所以我們需要將array[i+1]項的值重新賦值給currentSum。

2. 我們需要定義一個最大值max,每次改變currentSum的值時,我們都需要將max和currentSum進行比較,如果currentSum大於max,我們則將currentSum的值賦值給max。

實現代碼:

public class TestArray {     public static int FindGreatestSumOfSubArray(int[] array) {         if (array.length==0 || array==null) {             return 0;         }        int currentSum = 0;     //儲存當前連續n項的和        int max = 0;            //儲存連續子項目和的最大值        for (int i = 0; i < array.length; i++) {            //核心部分,好好理解.            if(currentSum<=0){      //如過當前連續n項的和小於等於0,則沒必要與後面的元素相加                currentSum = array[i];      //currentSum重新賦值            }else{                currentSum += array[i];     //如果currentSum的值大於0,則繼續與後面的元素相加,            }            if(currentSum>max){         //每次改變currentSum的值都有與max進行比較                max = currentSum;       //如果currentSum的值大於max,則將currentSum的值賦值給max            }        }        return max;     }  }

代碼測試:

public static void main(String[] args) {        int[] array = {6,-3,-2,7,-15,1,2,2};        int result = FindGreatestSumOfSubArray(array);        System.out.println("連續子項目的最大和為:"+result);    }

連續子項目的最大和為:8

這道編程題能不錯的考察程式員的能力,如果能夠編寫出來,說明編程能力還是不錯的,編程能力能夠通過練習得到提高的,希望再接再厲。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.