首页 > 其他 > 详细

leetcode53 Maximum Subarray

时间:2020-02-12 00:44:13      阅读:116      评论:0      收藏:0      [点我收藏+]
 1 """
 2 Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
 3 Example:
 4 Input: [-2,1,-3,4,-1,2,1,-5,4],
 5 Output: 6
 6 Explanation: [4,-1,2,1] has the largest sum = 6.
 7 """
 8 """
 9 最开始的想法复杂了:建一个n*n的二维数组,存储[i,j]的和
10 因为最后的output只要和的值,不需要求是哪些序列,所以此想法
11 实现起来麻烦,效率还低
12 """
13 """
14 正确的算法应为:贪心算法
15 subMaxSum = max(nums[i]+nums[i-1], nums[i])
16 nums[i] = subMaxSum
17 保证num[i]存的是i之前最大的和
18 """
19 
20 class Solution:
21     def maxSubArray(self, nums):
22         length = len(nums)
23         for i in range(1, length):
24             #当前值的大小与前面的值之和比较,若当前值更大,则取当前值,舍弃前面的值之和
25             subMaxSum = max(nums[i]+nums[i-1], nums[i])
26             nums[i] = subMaxSum#将当前和最大的赋给nums[i],新的nums存储的为和值
27         return max(nums)

 

leetcode53 Maximum Subarray

原文:https://www.cnblogs.com/yawenw/p/12297336.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!