leetcode.array--53. Maximum Subarray
2017-10-12 23:32
399 查看
题目:53. Maximum Subarray
问题描述:https://leetcode.com/problems/maximum-subarray/description/
题目意思是说,给定一个数组(长度大于0),找到该数组的子序列和的最大值。例如:[-2,1,-3,4,-1,2,1,-5,4],和最大的子序列为[4,-1,2,1],返回该子序列的和,即6。
思路很简单啦,当某一个子序列的和为负值时,这个子序列肯定不会是目标子序列的前缀。也就是说,我们从nums[0]开始向后求和就好啦,当和为负数时该位置就是一个新的起点,记得保存下计算的最大值即可。
Python:
class Solution(object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
length=len(nums)
if length==0:
return
if length==1:
return nums[0]
res,tempSum=max(nums),0
for i in range(length):
tempSum+=nums[i]
if tempSum<0:
tempSum=0
continue
else:
res=max(res,tempSum)
return res
问题描述:https://leetcode.com/problems/maximum-subarray/description/
题目意思是说,给定一个数组(长度大于0),找到该数组的子序列和的最大值。例如:[-2,1,-3,4,-1,2,1,-5,4],和最大的子序列为[4,-1,2,1],返回该子序列的和,即6。
思路很简单啦,当某一个子序列的和为负值时,这个子序列肯定不会是目标子序列的前缀。也就是说,我们从nums[0]开始向后求和就好啦,当和为负数时该位置就是一个新的起点,记得保存下计算的最大值即可。
Python:
class Solution(object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
length=len(nums)
if length==0:
return
if length==1:
return nums[0]
res,tempSum=max(nums),0
for i in range(length):
tempSum+=nums[i]
if tempSum<0:
tempSum=0
continue
else:
res=max(res,tempSum)
return res
相关文章推荐
- [array] leetcode - 53. Maximum Subarray - Easy
- LeetCode 53. Maximum Subarray
- leetcode 53. Maximum Subarray
- 【LeetCode】53. Maximum Subarray
- 个人记录-LeetCode 53. Maximum Subarray
- Leetcode 53. Maximum Subarray
- leetcode 53. Maximum Subarray
- LeetCode 53. Maximum Subarray
- leetcode--53. Maximum Subarray
- [leetcode]53. Maximum Subarray
- [LeetCode] 53. Maximum Subarray 解题思路
- [leetcode]#53. Maximum Subarray
- leetcode-53. Maximum Subarray
- leetcode刷题之旅——53. Maximum Subarray
- LeetCode - 53. Maximum Subarray
- leetcode题解——53. Maximum Subarray
- Leetcode:53. Maximum Subarray
- leetcode解题报告:53. Maximum Subarray
- LeetCode 53. Maximum Subarray
- [LeetCode By Python]53. Maximum Subarray