题目:
给定一个整数数组,找出总和最大的连续数列,并返回总和。
方法一:
执行用时: 32 ms
内存消耗: 15.5 MB
野生做法,遍历数组,求和,一边求和一边与这个数对比,如果这个数大于求的和,就从这个数往下计算,抛弃之前算的和。有点像动态规划的背包问题。
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
sum = 0
sum_list = []
for i in range(len(nums)):
sum += nums[i]
if nums[i] > sum:
sum = nums[i]
sum_list.append(sum)
return max(sum_list)
方法二:
暴力法。当然,时间超出了限制
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
result = nums[0]
for i in range(len(nums)):
sum = 0
j = i
for j in range(j, len(nums)):
sum += nums[j]
result = sum if sum > result else result
return result
待补充:
方法三:
动态规划法:
方法四:
分治法:
博客围绕给定整数数组,求解总和最大的连续数列总和展开。介绍了野生做法,类似动态规划背包问题,还提及暴力法但时间超限制,另外待补充动态规划法和分治法。

&spm=1001.2101.3001.5002&articleId=112551081&d=1&t=3&u=5fb20664c2c64e959afe64701947e725)

被折叠的 条评论
为什么被折叠?



