leetcode 53 最大子序和python

2021-09-11 10:31:54 字數 571 閱讀 3573

這是乙個最大子數列問題:kadane演算法掃瞄一次整個數列的所有數值,在每乙個掃瞄點計算以該點數值為結束點的子數列的最大和(正數和)。該子數列由兩部分組成:以前乙個位置為結束點的最大子數列、該位置的數值。因為該演算法用到了「最佳子結構」(以每個位置為終點的最大子數列都是基於其前一位置的最大子數列計算得出),該演算法可看成動態規劃的乙個例子。

是想辦法將這個陣列轉變成乙個和陣列

class solution:

def maxsubarray(self, nums):

""":type nums: list[int]

:rtype: int

"""length=len(nums)

for i in range(1,length):

#當前值的大小與前面的值之和比較,若當前值更大,則取當前值,捨棄前面的值之和

submaxsum=max(nums[i]+nums[i-1],nums[i])

nums[i]=submaxsum#將當前和最大的賦給nums[i],新的nums儲存的為和值

經過處理的陣列變成[2, 5, 4, 5, 7]這個樣子

LeetCode53最大子序和

給定乙個序列 至少含有 1 個數 從該序列中尋找乙個連續的子串行,使得子串行的和最大。例如,給定序列 2,1,3,4,1,2,1,5,4 連續子串行 4,1,2,1 的和最大,為6。擴充套件練習 若你已實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。一開始用的最簡單最直接的方法,挨個的把...

LeetCode 53 最大子序和

給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。這道題本來是能做出...

LeetCode 53 最大子序和

題目鏈結 題目描述 給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。解決方法 解題思路 動態規劃,複雜度為 o n 令dp i 表示最後一項為...