給定乙個整數陣列nums
,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和。
示例:
輸入:[-2,1,-3,4,-1,2,1,-5,4],輸出:6解釋:連續子陣列 [4,-1,2,1] 的和最大,為 6。
高階:
如果你已經實現複雜度為 o(n) 的解法,嘗試使用更為精妙的分治法求解。
動態規劃
/**
* @param nums
* @return
*/var maxsubarray = function(nums)
let global_max = 0, local_max = 0
for (num of nums)
return global_max
};
動態規劃
class solution:
def maxsubarray(self, nums: list[int]) -> int:
if max(nums)<0:
return max(nums)
local_max, global_max = 0,0
for num in nums:
local_max = max(local_max+num,0)
global_max = max(local_max, global_max)
return global_max
由於分治法並不是最優的,所以先不列出來了。 Leetcode 53最大子串行和
int maxsubarray vectornums int res dp 0 for int i 1 i len i return res 第 1 步 定義狀態 既然乙個連續子陣列一定要以乙個數作為結尾,那麼我們就將狀態定義成如下。dp i 表示以nums i 結尾的連續子陣列的最大和。第 2 步...
Leetcode53 最大子串行和
給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。核心思想就是檢查之前 i 1 的元素和,如果小於零就捨棄 對應下面第六行 1 class solution 9return max nums 10 11 關於動態轉移方程建立的分析如下 摘自 1 clas...
LeetCode53最大子序和
給定乙個序列 至少含有 1 個數 從該序列中尋找乙個連續的子串行,使得子串行的和最大。例如,給定序列 2,1,3,4,1,2,1,5,4 連續子串行 4,1,2,1 的和最大,為6。擴充套件練習 若你已實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。一開始用的最簡單最直接的方法,挨個的把...