如何求解LeetCode 53题:最大子数组和问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计503个文字,预计阅读时间需要3分钟。
pythondef maxSubarray(nums): dp=[0] * len(nums) dp[0]=nums[0] max_sum=dp[0] for i in range(1, len(nums)): dp[i]=max(nums[i], dp[i-1] + nums[i]) max_sum=max(max_sum, dp[i]) return max_sum
测试代码nums=[-2, 1, -3, 4, -1, 2, 1, -5, 4]print(maxSubarray(nums)) # 输出应为 6,对应子数组 [4, -1, 2, 1]
定义一个max保存遍历过程中出现的最大子数组和,也是返回结果,定义一个dp[i],用来表示以第i个元素为结尾的数组的最大数组和。 一、题目大意标签: 动态规划
leetcode.cn/problems/maximum-subarray
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组 是数组中的一个连续部分。
示例 1:
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组[4,-1,2,1] 的和最大,为6 。
本文共计503个文字,预计阅读时间需要3分钟。
pythondef maxSubarray(nums): dp=[0] * len(nums) dp[0]=nums[0] max_sum=dp[0] for i in range(1, len(nums)): dp[i]=max(nums[i], dp[i-1] + nums[i]) max_sum=max(max_sum, dp[i]) return max_sum
测试代码nums=[-2, 1, -3, 4, -1, 2, 1, -5, 4]print(maxSubarray(nums)) # 输出应为 6,对应子数组 [4, -1, 2, 1]
定义一个max保存遍历过程中出现的最大子数组和,也是返回结果,定义一个dp[i],用来表示以第i个元素为结尾的数组的最大数组和。 一、题目大意标签: 动态规划
leetcode.cn/problems/maximum-subarray
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组 是数组中的一个连续部分。
示例 1:
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组[4,-1,2,1] 的和最大,为6 。

