力扣 53最大子序和 動態規劃

2021-10-08 17:07:13 字數 698 閱讀 6146

題目描述

給定乙個整數陣列 nums ,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和。

示例:輸入: [-2,1,-3,4,-1,2,1,-5,4]

輸出: 6

解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

解題思路

動態規劃

使用乙個大小為len(nums)的一維動態陣列,每個元素表示以num[i]結尾的最大和,因此對於乙個元素nums[i],需要比較dp[i-1]+nums[i]和nums[i]

class solution(object):

def maxsubarray(self, nums):

dp = [0] * len(nums)

dp[0] = nums[0]

res = dp[0]

for i in range(1, len(nums)):

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

res = max(res, dp[i])

return res

s = solution()

print(s.maxsubarray([-2,1,-3,4,-1,2,1,-5,4]))

力扣日記 53 最大子序和 動態規劃

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。動態規劃 kadane 演算法 常數空間,沿陣列移動並在原陣列修改。線性空間,首先沿 lef...

力扣 53 最大子序和

題目描述 簡單 給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。題目鏈結 示例 1 輸入 2,1,3,4,1,2,1,5,4 輸出 6解釋 連續子陣列 4,1,2,1 的和最大,為 6。演算法分析 設dp i 表示以第i個數結尾的子陣列的最大和,那麼只...

力扣53 最大子序和

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。法一 利用二級指標申請乙個二維陣列 a int malloc sizeof int m fo...