輸入乙個非空整型陣列,陣列裡的數可能為正,也可能為負。
陣列中乙個或連續的多個整數組成乙個子陣列。
求所有子陣列的和的最大值。
要求時間複雜度為o(n)。
樣例
輸入:[1, -2, 3, 10, -4, 7, 2, -5]
輸出:18
此題o(n)的解法是用動態規劃。dp[i]是以i結尾的最大子序和,如果dp[i-1]小於0,那麼dp[i]等於nums[i]才能使其最大,如果加上前面的dp[i-1]的話會更小。否則dp[i]等於dp[i-1]加上nums[i]。最終的結果是dp陣列中最大的數,所以遍歷過程中一直更新最大值ans。最終遍歷完後返回最大子序和ans。
class solution
return ans;
}};
AcWing 55 連續子陣列的最大和
題目描述 輸入乙個非空整型陣列,陣列裡的數可能為正,也可能為負。陣列中乙個或連續的多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為o n 樣例輸入 1,2,3,10,4,7,2,5 輸出 18分析 本題作為動態規劃的經典題,在紫書上高效演算法設計第一節便給出了各種複雜度的解法。暴力...
(7)連續子陣列問題
include using namespace std 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因...
523 連續的子陣列和
解法一 字首和的暴力搜尋 o n 2 我們遍歷每乙個連續的序列,判斷他是否滿足條件,我們使用字首和 這種解法相信不用多說就會的 public boolean checksubarraysum int nums,int k 迴圈處理每一段連續的序列 for int i 0 i nums.length ...