溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java中如何求數(shù)組中最大連續(xù)子序列的和

發(fā)布時間:2020-10-23 15:38:26 來源:億速云 閱讀:381 作者:小新 欄目:編程語言

java中如何求數(shù)組中最大連續(xù)子序列的和?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

時間復(fù)雜度為O(n)

只需要過一遍數(shù)組即可,但是需要深入理解這個數(shù)組的本質(zhì)特征,即動態(tài)規(guī)劃的方法。

首先設(shè)置兩個變量,thisSum和maxSum。其中thisSum表示走到當前位置元素的和;maxSum表示走到當前位置下的連續(xù)子序列的最大和。

注意:如果thisSum為負,則直接將其置為0;如果thisSum大于maxSum,則將maxSum置為thisSum的值。

public static int maxSubArray(int[] nums)
    {
        int length = nums.length;
        if(length <= 0)
            return 0;
        int CurSum = 0;
        int max = Integer.MIN_VALUE;
        for(int i = 0; i < length; i++)
        {
            if(CurSum <= 0)     //當當前的和小于等于0,那么就給其置為當前元素的值
                CurSum = nums[i];
            else
                CurSum += nums[i];
            if(CurSum > max)
                max = CurSum;
        }
        return max;
    }

感謝各位的閱讀!看完上述內(nèi)容,你們對java中如何求數(shù)組中最大連續(xù)子序列的和大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI