Time: 20190904
Type: Easy
考察:动态规划

题目描述

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
进阶:

如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-subarray
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

这里的序列指的是连续的,如果是不连续的,则直接挑出其中的正数就完事了。

用动态规划的思路来思考,f[i]表示到下标为i的元素为止,最大子序列和。

关于最大子序列和,参考之前写的文章,那里有详细的解读。

最大子序列和

代码

class Solution:def maxSubArray(self, nums: List[int]) -> int:maxSum, maxCur = nums[0], nums[0]n = len(nums)for i in range(1, n):if maxCur <= 0: # maxCur + a[i] <= a[i]maxCur = nums[i]else:maxCur += nums[i]    maxSum = max(maxSum, maxCur)return maxSum

END.

Leetcode 53.最大子序列和相关推荐

  1. 【动态规划】LeetCode 53. Maximum Subarray

    LeetCode 53. Maximum Subarray 原题描述(求子序列最大和/最大子串):Find the contiguous subarray within an array (conta ...

  2. Leetcode 792. 匹配子序列的单词数

    Leetcode 792. 匹配子序列的单词数 给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数 . 字符串的 子序列 是从原始字符串中生成的新字符串,可以 ...

  3. leetcode 53. 最大子序和 动态规划解法、贪心法以及二分法

    题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子 ...

  4. 动态规划——最大子数组和(Leetcode 53)

    题目选自Leetcode 53. 最大子数组和 题目描述: 解题思路: 解题代码: int maxSubArray(int* nums, int numsSize){int pre = 0, maxA ...

  5. 【DP】LeetCode 53. Maximum Subarray

    LeetCode 53. Maximum Subarray Solution1:我的答案 动态规划 class Solution { public:int maxSubArray(vector< ...

  6. leetcode 53 最大自序和

    leetcode 53 最大子序和 # 解法一 穷举 i 表示取数组中元素的个数, j表示数组开始的位置 # 此解法由于枚举效率过低 超出时间限制 class Solution:def maxSubA ...

  7. Leetcode 792. 匹配子序列的单词数 C++

    Leetcode 792. 匹配子序列的单词数 题目 给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数. 示例: 输入: S = "abcde&q ...

  8. leetcode - 53. 最大子序和 152. 乘积最大子序列 - 两个算法之间的联系和区别

    这两道算法题的解题思路是差不多的,但是从整体上分析,乘积最大子序列之和是最大子序和的进阶.先来看看两道算法题的简单描述. 53.最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组 ...

  9. 114. Leetcode 53. 最大子数组和 (动态规划-子序列问题)

    步骤一.确定状态: 确定dp数组及下标含义 dp[i]:包括下标i之前的最大连续子序列和为dp[i]. 步骤二.推断状态方程: dp[i]只有两个方向可以推出来: dp[i - 1] + nums[i ...

最新文章

  1. ECharts测量图,功率图
  2. 276. Paint Fence
  3. ArcGIS Pro发布三维场景服务
  4. MAX3222/MAX3232/ MAX3237/MAX3241/串口通信中文_技术文档
  5. Java World中的GraphQL简介
  6. (数据科学学习手札03)Python与R在随机数生成上的异同
  7. Flutter Exception降到万分之几的秘密 1
  8. python中lambda()的用法_python中lambda()的用法
  9. delphi dbgrideh 遍历每一个单元格_BFS 的使用场景:层序遍历、最短路径问题
  10. 【2012.1.24更新】不要再在网上搜索eclipse的汉化包了!
  11. 约瑟夫环c语言不用链表,C语言基于循环链表解决约瑟夫环问题的方法示例
  12. 入门OJ:photo
  13. HTML页面基本结构
  14. python词频统计_Python中文词频统计
  15. AI将带我们去何方?(下-展望篇)
  16. 洛必达法则的一种极简证明
  17. 中荷金生有约养老年金险怎么样?好不好?
  18. 2020秋季《大数据与物联网》期末答案参考
  19. OpenCV第五章练习p163_5~8
  20. 疑难杂症:系统状态正常,LInux双机Pacemaker为什么还要切换?

热门文章

  1. 深度学习——卷积块回顾
  2. java获取达梦数据库_记一次对达梦数据库的优化过程
  3. c语言字符合法,C语言字符数据的合法形式
  4. android fragment 教程,Android app开发中的Fragment入门学习教程
  5. linux下mysql数据库目录迁移_mysql实现linux下数据库目录迁移
  6. springboot传入json和文件_Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)...
  7. 电脑主板跳线_电脑主板跳线连接图
  8. jsf教程_JSF教程
  9. linux sed命令_Linux sed命令用法与示例
  10. primefaces教程_Primefaces树,TreeNode,TreeTable示例教程