首页 > 其他 > 详细

leetcode--Maximum Subarray

时间:2017-01-03 20:56:12      阅读:194      评论:0      收藏:0      [点我收藏+]

题目链接:https://leetcode.com/problems/maximum-subarray/

算法类型:动态规划

题目分析:最大序列和

代码实现:

 1 class Solution(object):
 2     def maxSubArray(self, nums):
 3         """
 4         :type nums: List[int]
 5         :rtype: int
 6         """
 7         nums_len = len(nums)
 8         if nums_len == 1:
 9             return nums[0]
10         mid_len = nums_len / 2
11         left_max = self.maxSubArray(nums[ : mid_len])
12         right_max = self.maxSubArray(nums[mid_len : ])
13 
14         mid_max_1 = nums[mid_len]
15         temp = mid_max_1
16         for i in range(0, mid_len)[::-1]:
17             temp += nums[i]
18             mid_max_1 = max(temp, mid_max_1)
19 
20         mid_max_2 = nums[mid_len]
21         temp = mid_max_2
22         for item in nums[ mid_len + 1 : ]:
23             temp += item
24             mid_max_2 = max(temp, mid_max_2)
25 
26         mid_max = mid_max_1 + mid_max_2 - nums[mid_len]
27 
28         return max(left_max, right_max, mid_max)

 

leetcode--Maximum Subarray

原文:http://www.cnblogs.com/yang91/p/6245957.html

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