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 maxnums = [-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 maxnums = [-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 maxnums = [-2, 1]maxSubArray(nums)这里都修改为if即可。