如何用PYTHON解决最大子序和问题
1、打开JUPYTER NOTEBOOK,新建一个PY文档。

2、nums = [-2,1,-3,4,-1,2,1,-5,4]
定义一个列表,我们需要找到最大和。

3、sum = 0
设置一个sum,记录连续相加的和。

4、max = nums[0]
#设置一个max,记录最大的和,可以先定义第一个数是最大的数。

5、def maxSubArray(nums):
sum = 0
max = nums[0]
for i in range(len(nums)):
return max
我们需要用循环来遍历整个列表。

6、def maxSubArray(nums):
sum = 0
max = nums[0]
for i in range(len(nums)):
sum = sum + nums[i]
max = max(max, sum)
return max
开始进行叠加,然后进行对比看看哪个和才是最大值。

7、def maxSubArray(nums):
sum = 0
max = nums[0]
for i in range(len(nums)):
sum = sum + nums[i]
max = max(max, sum)
if sum < 0:
sum = 0
return max
如果叠加为负数的话就重启sum,因为负数怎么叠加会使得整体变小。

8、def maxSubArray(nums):
sum = 0
max = nums[0]
for i in range(len(nums)):
sum += nums[i]
if max <= sum:
max = sum
elif sum < 0:
sum = 0
return max
修改整理一下。

9、def maxSubArray(nums):
sum = 0
max = nums[0]
for i in range(len(nums)):
sum += nums[i]
if max <= sum:
max = sum
elif sum < 0:
sum = 0
return max
nums = [-2,1,-3,4,-1,2,1,-5,4]
maxSubArray(nums)
我们进行一下测试。
def maxSubArray(nums):
sum = 0
max = nums[0]
for i in range(len(nums)):
sum += nums[i]
if max <= sum:
max = sum
elif sum < 0:
sum = 0
return max
nums = [-2, 1]
maxSubArray(nums)
但是这里出现了问题。


10、def maxSubArray(nums):
sum = 0
max = nums[0]
for i in range(len(nums)):
sum += nums[i]
if max <= sum:
max = sum
if sum < 0:
sum = 0
return max
nums = [-2, 1]
maxSubArray(nums)
这里都修改为if即可。
