Python中的最大子数组
假设我们有一个整数数组A。我们必须找到长度至少为1且具有最大和的连续子数组,并返回其和。因此,如果数组A像A=[-2,1,-3,4,-1,2,1,-5,4],则总和为6。子数组为[4,-1,2,1]
为了解决这个问题,我们将尝试使用动态编程方法。
定义一个与A大小相同的数组dp,并用0填充
dp[0]:=A[0]
对于i=1到A–1的大小
dp[i]:=dp[i–1]的最大值+A[i]和A[i]
在dp中返回最大值
让我们看下面的实现以更好地理解-
范例(Python)
class Solution(object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
dp = [0 for i in range(len(nums))]
dp[0] = nums[0]
for i in range(1,len(nums)):
dp[i] = max(dp[i-1]+nums[i],nums[i])
#print(dp)
return max(dp)
nums = [-2,1,-3,7,-2,2,1,-5,4]
ob1 = Solution()print(ob1.maxSubArray(nums))输入值
nums = [-2,1,-3,7,-2,2,1,-5,4]
输出结果
8
热门推荐
3 家长会简短祝福语
10 爸妈对宝宝祝福语简短
11 离别赠言离职祝福语简短
12 如果不结婚祝福语简短
13 经典座右铭简短祝福语英文
14 部队牛年祝福语简短的
15 毕业写给学校简短祝福语
16 开工红包祝福语毕业简短
17 大哥添孙子简短祝福语
18 10岁高考祝福语简短