题目详情

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

示例:

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

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

题解

动态规划:f(i)=max(f(i-1)+num[i],num[i]))

class Solution {
public:int maxSubArray(vector<int>& nums) {//dp//f(i)表示下标为i的最大子序和//更新方程:f(i)=max(f(i-1)+num[i],num[i])) 要么加上下一个要么重新从i开始计和if(nums.empty())return 0;int numSize=nums.size();int maxx=nums[0];int maxx_global=nums[0];for(int i=1;i<numSize;i++){maxx=max(maxx+nums[i],nums[i]);//这里要注意的是maxx并不是全局最优,而是局部相邻选择时的最优,发生重新开始的局势时,有必要去前面最优情况作比较。如果申请数组就不需要这样。maxx_global=max(maxx,maxx_global);}return maxx_global;}
};

或者直接在线处理

class Solution {
public:int maxSubArray(vector<int>& nums) {//在线处理//策略:如果前面的和是有增益效果的(sum>0),则可以继续;如果前面的和无增益效果的(sum<0),则舍弃;maxx始终保持全局最大。if(nums.empty())return 0;int sum=nums[0];int maxx=sum;for(int i=1;i<nums.size();i++){if(sum>0)sum+=nums[i];elsesum=nums[i];maxx=max(maxx,sum);}return maxx;}
};

转载于:https://www.cnblogs.com/ManWingloeng/p/11454151.html

leetcode之53.最大子序和相关推荐

  1. LeetCode 题 - 53. 最大子序和 python解法

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

  2. 【LeetCode】53.最大子序和

    题目 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 题解 方法1:暴力法 算法 暴力地用两重循环遍历所有情况 代码 class Solution ...

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

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

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

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

  5. leetcode - 53. 最大子序和

    53. 最大子序和 - 动态规划 -------------------------------------- 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素), ...

  6. 贪心1|455.分发饼干|376. 摆动序列|53. 最大子序和

    贪心1|455.分发饼干|376. 摆动序列|53. 最大子序和 一.455.分发饼干 题目连接:455. 分发饼干 - 力扣(LeetCode) 思路1:用贪心思想,将饼干数组和胃口数组先排序,然后 ...

  7. 力扣贪心算法专题(一)455.分发饼干 376. 摆动序列 53. 最大子序和 122.买卖股票的最佳时机II 1005.K次取反后最大化的数组和 思路及C++实现 贪心算法 动态规划

    文章目录 贪心算法 455.分发饼干 思路 步骤 代码 376. 摆动序列 贪心算法 思路 分析 代码 动态规划 思路 步骤 代码 53. 最大子序和 暴力解法 双层for循环 贪心算法 思路 分析 ...

  8. leetcode学习记录5——53.最大子序和

    leetcode学习记录 leetcode学习记录五 最大子序和 解题思路 代码 leetcode学习记录五 最大子序和 难度:简单 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数 ...

  9. LeetCode 53. 最大子序和(动态规划)

    文章目录 1. 题目描述 2. 解题 2.1 暴力求解 2.2 动态规划 1. 题目描述 题目链接:https://leetcode-cn.com/problems/maximum-subarray/ ...

最新文章

  1. 一文全面解析 Postman 工具
  2. UVa661 Blowing Fuses
  3. Android设计模式(九)--外观模式
  4. python day29
  5. 使用DELPHI编写一个小的控件
  6. linux编译llvm代码
  7. (七)全半角转换(转)
  8. jQuery-DOM
  9. ES6 开发常用新特性以及简述ES7
  10. 通道控制方式,通道指令与通道程序
  11. BZOJ 3876 支线剧情
  12. 采用python解决实际问题_应用 Python 解决一些实际问题
  13. 如何远程访问***之easy ***
  14. Linux-unit-10-11-日志,IP
  15. 打造自己的Android源码学习环境之三:在虚拟机中安装Ubuntu(下)
  16. 各银行支付/各种支付平台/php对接支付接口心得/php h5支付接口对接
  17. dota2api的介绍与使用
  18. [37期]二三事。老师说标题长才霸气。长长长…
  19. Base64加解密__完整版有解释
  20. NLP情感分析基础知识

热门文章

  1. 使用Java反射(Reflect)、自定义注解(Customer Annotation)生成简单SQL语句
  2. linux环境 前端开发环境搭建,Linux运维知识之linux 前端环境搭建
  3. 【C#版本详情回顾】C#2.0主要功能列表
  4. antd的table遍历之后添加合计行_付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具...
  5. MySQL的性能调优工具
  6. OnScrollListener
  7. mysql数学函数有什么_mysql数学函数有哪些?
  8. celery cluser redis_celery结合redis 使用
  9. 今天,我们考大学是为了什么?
  10. cmd 顺序启动服务_未能连接一个Windows服务 怎么回事